超簡単! sedでHTMLタグの中身だけ取り出す方法
HTMLファイルやXMLファイルで特定のタグの中身だけ取り出したい、、、なんてことはよくありますよね。
そういう時は、ShellScriptを使うと簡単にプログラムを書くことができます。
例えば、index.htmlというファイル内の
<title>タイトル</title>
の「タイトル」の部分だけを取り出したい場合は
sed -n “s/<title>\(.*\)</title>/\1/p” index.html
sedコマンドのオプション -nとpの組み合わせで置換が発生さた行だけ出力させることができます。
\( \)で囲まれた部分は前から順番に\1,\2,…と参照できます。(sed 以外では\が必要ない場合も)
ここでは、タグ内の任意の文字列.*を\(\)でくくって\1で取り出せるようにしています。
この結果をtxtファイルとして保存するときは
sed -n “s/<title>\(.*\)</title>/\1/p” index.html > file.txt
でオッケー。
こういう簡単なプログラムを書くにはShellScriptが便利ですね。
今後もなにか思いついたら、ちょこちょこ書いていこうかと思います。