grepコマンド
OR検索
ls | grep -e '.html' -e '.css' # .htmlと.cssだけ
ls | grep -E '.html|.css' # .htmlと.cssだけ(拡張正規表現を使って)
AND検索
ls -l | grep 2016 | grep .txt
NOT検索
ls | grep -v '.html' # .html以外
ls | grep -v -e '.html' -e '.css' # .htmlと.css以外
ls | grep -v -E '.html|.css' # .htmlと.css以外(拡張正規表現を使って)
マッチしたファイル名だけ取り出す
grep -l FOO *
マッチした内容だけ取り出す(ファイル名を抑止する)
grep -h FOO *
マッチした行数を調べる
grep -c FOO *
1.txt:1
2.txt:0
3.txt:1
独立した単語として検索する
cat 1.txt
FOOBAR
BAZ FOO
grep -w FOO 1.txt
BAZ FOO
マッチした前後の行を表示する
cat 1.txt
01
02
03
04 FOO
05
06
07
grep -A2 -B1 FOO 1.txt
03
04 FOO
05
06
再帰的に指定したファイルのみgrepする
(IFS=$'\n'; for f in $(find . -type f); do (file $f | grep "FOO_BAR_BAZ") && echo $f ; done)