技術のメモ箱

Shell Script/grep

書式

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]  

オプション(抜粋)

パターン

-E
PATTERN を拡張正規表現 (ERE) として扱う。
-G
PATTERN を基本正規表現 (BRE) として扱う。デフォルト。
-e PATTERN
パターンを指定する。複数回使用できる。
-f FILE
FILE からパターンを読み込む。
-i
アルファベットの大文字と小文字を区別しない。

ファイル

-r
各ディレクトリの下にあるすべてのファイルを再帰的に読み込む。シンボリックリンクは指定されたときのみ追跡する。
-R
各ディレクトリの下にあるすべてのファイルを再帰的に読み込む。すべてのシンボリックリンクを追跡する。
--include=GLOB
GLOBにマッチするファイルのみ検索する。

出力

-v
マッチしない行を表示する。
-q
標準出力に出力しない。
-s, --no-messages
ファイルが存在しないことや読み込みめないことを示すエラーメッセージを抑止する。
-n, --line-number
各出力行の前に、そのファイル内の行番号を表示する。

-A NUM
指定した行数分、パターンにマッチした後の行も表示する。
-B NUM
指定した行数分、パターンにマッチした前の行も表示する。
-C NUM, -NUM
指定した行数分、パターンにマッチした前後の行も表示する。

サンプルコード

findと組み合わせて、条件に合致するファイルにgrepを行う。

find . -name "*.exp" | xargs grep keyword

同等のことが--includeオプションで可能。

grep -r --include="*.exp" keyword ./

pagetop