Grasp - JavaScriptの構造を解釈した検索/置換コマンド
開発者であればGrepのお世話になることが非常に多いはずです。しかしただ文字列を検索するだけで、細かい部分は正規表現などを使って書かなければなりません。また、探し出した後の編集はエディタで行うことになります。 そこで使ってみたいのがGraspです。JavaScriptに特化した、構造を解釈できる検索コマンドです。
Graspの使い方
例えば正規表現が使えます。以下は &&
が使われている場合。
$ grasp 'if.test[op=&&]' a.js
2: if (x && f(x)) { return [1, 2]; }
5: if (xs.length && ys.length) {
10: if (x == 3 && list[x]) {
さらに replace オプションで文字の置換もできます。
$ grasp bi --replace '{{.r}}+{{.l}}' c.js
f(y+x, z+x);
Graspは記法が特殊なので、きちんと覚えないと目的の結果が得られないでしょう。しかし一回覚えてしまえばJavaScriptのソースコードであれば自在に欲しい情報が取り出せるようになるはずです。 GraspはLiveScript製のオープンソース・ソフトウェア(MIT License)です。
Grasp - JavaScript structural search, replace, and refactor gkz/grasp: JavaScript structural search, replace, and refactor