Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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 [キータ]