From Evernote: |
Find & grep |
ソースの中から文字列「hogehoge」を検索するには
% find . -name \*.c -exec grep hogehoge {} \;
とすればよいが、これでは *.c のファイルの数だけ grep コマンドが実行され、時間がかかる。そういう場合は
% find . -name \*.c -print | xargs grep hogehoge
とすればよい。もっときっちりやるなら
% find . -name \*.c -print0 | xargs -0 grep hogehoge /dev/null
OTHER:
% find . -name '*.c' | xargs grep hoge
find が 10ファイル分を出力するたびに grep が実行されることになる。
% find . -name \*.c -print | xargs -n 10 grep hogehoge
% find . -name '*.c' -exec grep hoge {} /dev/null \;
% find . -name '*.c' -exec grep hoge {} \;
when filename or folder name contain space
% find ./ -type f -print0 | xargs -0 -- grep "test"
$ find . -type f -print0 | xargs -0 コマンド
条件の結合・否定など
-a または -and
% find . -name abc -and -type d
⇒ abc という名前のディレクトリを検索
ただし、複数の検索条件を並べて書けば AND として扱われるので、上記コマンドは
% find . -name abc -type d
% find . -name \*.c -exec grep hogehoge {} \;
とすればよいが、これでは *.c のファイルの数だけ grep コマンドが実行され、時間がかかる。そういう場合は
% find . -name \*.c -print | xargs grep hogehoge
とすればよい。もっときっちりやるなら
% find . -name \*.c -print0 | xargs -0 grep hogehoge /dev/null
OTHER:
% find . -name '*.c' | xargs grep hoge
find が 10ファイル分を出力するたびに grep が実行されることになる。
% find . -name \*.c -print | xargs -n 10 grep hogehoge
% find . -name '*.c' -exec grep hoge {} /dev/null \;
% find . -name '*.c' -exec grep hoge {} \;
when filename or folder name contain space
% find ./ -type f -print0 | xargs -0 -- grep "test"
$ find . -type f -print0 | xargs -0 コマンド
条件の結合・否定など
-a または -and
% find . -name abc -and -type d
⇒ abc という名前のディレクトリを検索
ただし、複数の検索条件を並べて書けば AND として扱われるので、上記コマンドは
% find . -name abc -type d
0 Responses to "Find & grep"
Post a Comment