grepの便利な使い方メモ
grepの便利な使い方メモ
- ログ調査などでgrepを使って絞り込みをする際にエラーが発生した行の前後も確認したい。
- ざっくり絞りこんでいく際に、特定のディレクトリを除いて全部検索したい。
環境
- bash
- GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
- macOS
- Catalina Version 10.15.7
サンプルファイル、フォルダ
MacBook-Pro:memo captain-blue$ tree sandbox/
sandbox/
├── dummy
│ └── sample.txt
└── sample.txt
test1
test2
test3
test4
test5
test6
※ sandbox直下とdummyフォルダ直下のsample.txtの中身は同じ
一致した行の前後も表示したい
grep -C 1 test3 sample.txt
-C
オプションのあとに半角スペースを空けて、前後に表示したい行数を指定する。
⬇️
MacBook-Pro:sandbox captain-blue$ grep -C 1 test3 sample.txt
test2
test3
test4
test3
の前後1行も表示された。
指定しない場合
MacBook-Pro:sandbox captain-blue$ grep test3 sample.txt
test3
test3のみ表示される
特定のディレクトリを除外したい
grep -r --exclude-dir dummy test3 .
-r
・・・サブディレクトリも含めて検索
--exclude-dir
・・・除外したいディレクトリを半角スペースを空けて指定
⬇️
MacBook-Pro:sandbox captain-blue$ grep -r --exclude-dir dummy test3 .
./sample.txt:test3
sandbox直下のtest3
のみ表示される
指定しない場合
MacBook-Pro:sandbox captain-blue$ grep -r test3 .
./dummy/sample.txt:test3
./sample.txt:test3
dummyフォルダ配下にあるファイルも対象となっている