アプリ版:「スタンプのみでお礼する」機能のリリースについて

LINUXでHTML内(複数行)の<div class="main">から</div>までだけを抽出するには
grepやsedで整理しながら変数に当てはめていく以外に正規表現などで複数行を抽出事は可能なのでしょうか?

A 回答 (1件)

全体が必ず1行に収まっているならこれでいけると思います。


sed 's#.*\(<div class="main">.*</div>\).*#\1#g' ファイル名 | grep '<div class="main">.*</div>'

<div ...>~</div>が複数行にまたがった内容を抽出するとしたら、
sed, awk, grepなどの行処理プログラム単体では、
どうしても</div>が存在するかどうかを見極めるまで出力すべきか判断できないので、
何等か抽出した文字列を記憶しておく必要はあると思います。

あとは、perlでファイル全体を1つの文字列として、正規表現で抽出とか。
もちろんこの方法はファイルサイズがでかいとアウトです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!