find ... xargs ~ のラッパーを2つ書いたけど ag に移行していこうと思う
自分がよく使うコマンドを、自分が使いやすいオプション付きでラッパー化しました。
自分はこれまで ag(the silver searcher) をほとんど使っていなかった *1 ので、いつもこんなコマンドを叩いていました。
…が、このエントリを書くにあたって改めて調べたところ、ag の方が便利そうで、下の機能はだいたいまかなえそうなので、今後は ag にしていこうとしているところです。*2
後者の xfperl-pie
の方は少し便利かもしれませんが、でもやっぱり ag でいいかなという気もしています。
ともあれ、下の2つは GitHub で公開していますので、お気に召しましたらご自由にお使い下さい。
xfgrep
# 使い方 xfgrep KEYWORD [-i|--ignore IGNORE_FILE_PATTERN] [-d|--dir DIR] \ [-f|--file FILE] # 実行されるコマンド find $DIR -type f -name "$FILE" [ | egrep -v "$IGNORE" ] | xargs egrep \ --color=always -Hn "$KEYWORD"
xfperl-pie
# 使い方 xfperl-pie PL_CODE [-f|--file FILE] [-i|--ignore IGNORE_FILE_PATTERN] \ [-d|--dir DIR] [-b|--backup BACKUP] [-n|--dry-run] # 実行されるコマンド find $DIR -type f -name '$FILE' [ | egrep -v '$IGNORE' ] | \ xargs perl -pi'$BACKUP' -e '$PL_CODE'
利用例
# カレントディレクトリ以下の .pm に対してバックアップしつつ 'foo' => 'bar' に一括置換 xfperl-pie 's/foo/bar/g' -f '*.pm' -b '.bak'
参考
- GitHub - ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
- The Silver Searcher のススメ
- Perlのワンライナーとコマンドラインオプション - weblog of key_amb
*1:一応 Mac に ag を入れていたことを、これを書いた後に思い出しました^^;
*2:早速、昨日 Qiita に ag (The Silver Searcher) コマンド覚え書き というエントリを書きました。