Linuxで特定の文字列を含むファイルを出力
find [検索対象フォルダのパス] -type f -print | xargs grep '[検索したい文字列]'
応用:Grepの出力結果数を抽出
find [検索対象フォルダのパス] -type f -print | xargs grep -c [検索内容] | grep -v :0
grep -c で件数を返します。
このままだと0件でも返してしまうので、grep -v :0としてやることで0件の場合は出力から除外も可能です。
応用:findの出力結果でファイル名のみ取得
find [ディレクトリ] -name [検索ワード] -maxdepth 1 -printf '%f\n'
監視など、一定間隔でコマンドを実行したいときに便利
watch -n 10 ps -af
-n 10で10秒間隔でps -afというコマンドを叩いています。
最新のログを定期的に表示する。
なんてことをする時も便利ですね。
例えば、
watch -n10 "find ~/var/log/hogehoge.log -type f -print | xargs grep -i 'error'"
などのようにしてやれば、ログからerrorを検知した時に画面に当該部分が出力されるのでよく使います。