grep - パターンに対応するファイルを検索する

構文

grep [-E|-F] [-c|-l|-q] [ -R [-H | -L | -P] ] [-ihnsvwxy] [-e pattern_list] [-f pattern_file] [pattern] [file ...]

説明

grep ユーティリティーは、1 つ以上の pattern に一致する行を選択して、指定された入力 file を検索します。 パターンのタイプは指定したオプションによって制御されます。 デフォルト設定では、パターン内の正規表現 (RE) が 1 つでも入力行に一致していれば、 パターンは入力行に一致するものと見なされます (後続の改行は無視されます)。 ヌル RE はすべての行に一致します。 各入力行は、一致するパターンが少なくとも 1 つあれば、標準出力に書き込まれます。

-E オプションと -F オプションの両方が指定されている場合は、最後に指定したオプションが使用されます。

オプション

-E
拡張正規表現 (ERE) を使用します。
-F
正規表現は認識されません。
-H
-R オプションを指定すると、コマンド行のシンボリック・リンクがたどられます。 ツリー走査中に検出されたシンボリック・リンクは対象にはなりません。
-L
-R オプションが指定されている場合は、コマンド行のシンボリック・リンクとツリー走査中に発見されたシンボリック・リンクの両方に従って操作が実行されます。
-P
-R オプションが指定されていれば、シンボリック・リンクはたどられません。
-R
file にディレクトリーが指定されている場合、 その時点で連結されている全サブツリー中の各ファイルが grep によって検索されます。
-c
選択された行の数のみが標準出力に書き込まれます。
-e
pattern_list には、1 つ以上の検索パターンを指定します。 各パターンは改行文字で区切ります。
-f
pattern_file には、検索パターンが入っているファイルを指定します。 各パターンは改行文字で区切ります。
-h
ファイル名ヘッダーを出力しません。
-i
比較するときに大文字と小文字を区別しません。 つまり、大文字と小文字は同一の文字と見なされます。
-l
選択された行の入ったファイルの名前のみが、標準出力に書き込まれます。 検索されたファイル 1 つにつき 1 回、パス名がリスト表示されます。 標準入力が検索される場合は、パス名 "-" が書き込まれます。
-n
各出力行の前には、ファイル内でのその行の相対行番号が付きます。各ファイルは、行番号 1 から始まります。行番号カウンターは、ファイルを 1 つ処理するたびにリセットされます。 -c-l、または -s オプションが指定されている場合は、このオプションは無視されます。
-q
メッセージが出力されていないときは静止モードになります。戻り状況のみが戻されます。
-s
存在しないファイルまたは読み取ることができないファイルの場合には、通常なら書き込まれるエラー・メッセージを抑制します。 その他のメッセージは抑制されません。
-v
指定したパターンに一致しない行が選択されます。
-w
正規表現全体を 1 つのワードとして ([[:<:]] や [[:>:]] で囲まれている場合と同じように) 検索します。
-x
行に含まれているのがパターンだけの場合、行に一致するものと見なされます。 このオプションは -w オプションより優先されます。 両方が指定されている場合は、-w オプションは無視されます。
-y
大文字小文字が区別されません (-i と同じ)。

オペランド

file はテキスト・ファイルへのパスを指定します。 file オペランドを指定しなかった場合は、標準入力が使用されます。

終了状況

  • 1 つまたは複数の行が選択された場合は、0。
  • 行が選択されなかった場合は、1。
  • >1 エラー発生。

拡張正規表現 (ERE)

grep では、次の文字は以下のように解釈されます。

$
行末から突き合わせをそろえる。
^
行の先頭から突き合わせをそろえる。 (注: この文字は 5250 端末セッションでは正しく動作しない場合があります。)
|
別のパターンの追加 (下の例を参照してください)。
?
パターンの 1 回以下の連続反復に一致。
+
パターンの 1 回以上の連続反復に一致。
*
パターンの 0 回以上の連続反復に一致。
.
任意の単一の文字に一致します。
[ ]
大括弧で囲まれた任意の 1 文字または文字の範囲に一致。

grep にとって意味を持つエスケープ特殊文字、つまり {$,.,^,[,],|,?,+,*,(,)} の組み合わせ。

  1. ワード patricia のすべての出現をファイルの中で検索する場合 :
    grep patricia myfile
  2. 行の先頭にある、パターン「.Pp」すべてを検索する場合。 単一引用符で囲めば、シェルでなく、確実に grep によって式全体が評価されます。 脱字記号 (^) は行の先頭からの意味 :
    grep '^.Pp' myfile
  3. ファイル calendar の中で、19、20、または 25 を検索する場合 :
    grep -E '19|20|25' calendar
  4. a から Z までの範囲内の文字に一致する文字を含む行の合計行数を調べる場合 :
    grep -c '[a-z]' reference/alphabet.text
  5. ドル記号 ($) を備えた行をすべて表示する場合。grep がドル記号文字を拡張正規表現として解釈しないように、ドル記号をエスケープさせる必要があります。 この例では、一致する行と共に、行番号も表示されます :
    grep -n '$' valid.file