grepは便利ですよね。ターミナルで操作している時には欠かせないコマンドですし、Emacsなどのエディタからもよく使われます。こんなツールが他のパターンでも使えると便利だと思うこともあるでしょう。
そのパターンの一つにHTMLがあります。HTMLのクラスやIDで検索するのにgrepは向いていません。そこで使えるのがqrepです。

qrepの使い方

qrepのインストールはnpmコマンドで行います。

$ npm install -g qrep  

これで準備完了です。

例えば標準入力から検索します。

$ curl -s -L http://www.moongift.jp/ | qrep title

<title>オープンソースを毎日紹介 MOONGIFT</title>
  

このようにしてtitleタグを検索できます。querySelectorAllが適用されます。

さらに複雑な指定もできます。

$ curl -s -L http://www.moongift.jp/ | qrep "h2.title a"  
[Mirror Draw – Canvasを使って左右反転させてドロー](/2014/12/mirror-draw-canvas%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e5%b7%a6%e5%8f%b3%e5%8f%8d%e8%bb%a2%e3%81%95%e3%81%9b%e3%81%a6%e3%83%89%e3%83%ad%e3%83%bc/)  
[Firing Range - Google製のWebセキュリティスキャナテストツール](/2014/12/firing-range-google%e8%a3%bd%e3%81%aeweb%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e3%82%b9%e3%82%ad%e3%83%a3%e3%83%8a%e3%83%86%e3%82%b9%e3%83%88%e3%83%84%e3%83%bc%e3%83%ab/)  
 :  

標準入力だけでなくURLからも指定できます。

$ qrep span.octicon-logo-github https://github.com  
  

ローカルにあるHTMLも指定できます。ディレクトリ以下にあるリストタグを洗い出したり、クラス指定で取り出すなど、grepとはまた違う使い方が考えられるでしょう。

qrepはnode/JavaScript製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

watilde/qrep