grepの便利な使い方メモ

1 min読了の目安(約1100字TECH技術記事

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フォルダ配下にあるファイルも対象となっている