カッコイイgrep
$grep --color=always -nriC1 "arg" ./*
現在ディレクトリ以下で大文字小文字区別なしに"arg"という文字をを含む行の前後1行を表示。
以下解説。
マッチした行の前後を表示
-C オプションで表示する行数を指定する。
または -A オプションと -B オプションで指定する。
Aはマッチした行とその後(After)3行、Bは前(Before)3行を表示
$grep -C3 blahbla foo.txt
大文字小文字区別
-i オプションを付けると大文字小文字区別せずに検索してくれる。
$grep -i PATTERN foo.txt
色付き表示
--color を付けるとパターンにマッチした部分を色付きで表示してくれる。
grep の出力をパイプで他のコマンドにつなげたときには --color でも色付きにしてくれないので、 --color=always と書く。
$ grep --color PATTERN foo.txt
$ grep --color=always PATTERN foo.txt | head
サブディレクトリも含めて検索
$grep -r 検索文字列 ディレクトリ
ディレクトリ以下、全てのファイルを検索して、ファイルの一覧を出したいときは、こんな感じ。
$grep -ilr xxx ./
オプションの説明まとめ
-i
: 大文字小文字関係無し
-l
: ファイル名のみ表示
-r
: 指定したディレクトリ以下を対象
ディレクトリ名をワイルドカードにすることで、ディレクトリを再帰的にたどって検索する。
-n
: 検索結果の出力に行番号をつける
-C
num : 表示する行数を指定
--color
: パターンにマッチした部分を色付き表示
参考
grepでファイル内を検索しよう
linux サブディレクトリ配下のファイルをgrepする
hydroculのメモ > コマンドの使い方(Linux) > grep コマンド