読者です 読者をやめる 読者になる 読者になる

weblog of key_amb

主にIT関連の技術メモ

find ... xargs ~ のラッパーを2つ書いたけど ag に移行していこうと思う

develop CLIツール

自分がよく使うコマンドを、自分が使いやすいオプション付きでラッパー化しました。

自分はこれまで 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'

参考

*1:一応 Mac に ag を入れていたことを、これを書いた後に思い出しました^^;

*2:早速、昨日 Qiita に ag (The Silver Searcher) コマンド覚え書き - Qiita というエントリを書きました。