Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

bashでHTMLパースする

結論

$ RET='\
'
$ cat /Users/shuzo/src/paper.html | sed -e 's/>/>'"$RET"'/g' | grep "<a"

何してるのか

RET

Bash内で使う変数を宣言します。
この場合、改行を突っ込みます。
.bashrcに書いても有効です。
頻繁に使うようなら、最初から登録しておくのも手かもしれません。

cat

文字列を出力します。

sed sed -e 's/>/>\RET/g'

ポイントは、「\」で一旦エンター押して改行する事。
\nとか使えると良かったのですけどね。
sedにはそういう機能が無いらしいのでこうします。
これがないと、

<li><a href="...

というような連続したタグを同時に引っ張り出してしまいます。

grep

今回はリンクを引っ張り出します。

参考もと

Bash Cookbook: Solutions And Examples for Bash Users (Cookbooks)

Bash Cookbook: Solutions And Examples for Bash Users (Cookbooks)

  • 作者: Cameron Newham,J. Vossen,Carl Albing
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2007/05
  • メディア: ペーパーバック
  • クリック: 2回
  • この商品を含むブログを見る
ShellScript - sedコマンドで文字列を改行に置換する、しかもスマートに置換する。 - Qiita [キータ]