grep [ -E | -F ] [ -i ] [ -h ] [ -s ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ [ -b ] [ -n ] ] | [ -c | -l | -q ] ] [ -p [ Separator ] ] { [ -e PatternList ... ] [ -f PatternFile ... ] | PatternList ... } [ File ... ]
grep コマンドは、Pattern パラメーターで指定されたパターンを検索し、一致する各行を標準出力に書き出します。パターンは、egrep コマンドのスタイルの正規表現に限定されます。 grep コマンドは、コンパクトな決定論的でないアルゴリズムを使います。
File パラメーター内で複数の名前を指定すると、grep コマンドは一致した行が入っているファイルの名前を表示します。シェルに対して特別な意味を持つ文字 ($、 *、[、|、^、(、)、¥) は、Pattern パラメーター内では引用符で囲まなければなりません。 Pattern パラメーターが単純な文字列でない場合、通常はパターン全体を単一引用符で囲まなければなりません。 [a-z] などの式において、- (負符号) cml は現在の照合シーケンスに従った範囲を意味します。照合シーケンスは文字範囲内で使用する等価クラスを定義できます。ファイルを指定しなければ、grep は標準入力を想定します。
注:
- 各行は 2048 バイト以内に制限されています。
- 現在、パラグラフ (-p フラグの指定) の長さは、5000 文字に限定されています。
- 予測できない結果を生ずるので、grep コマンドをスペシャル・ファイル上で実行するのは避けてください。
- 入力行には、NULL 文字を使用しないでください。
- 入力ファイルは、改行文字で終らなければなりません。
- 改行文字は、正規表現で一致させることはできません。
- 複数のフラグを同時に指定できますが、フラグの中には他のフラグをオーバーライドしてしまうものがあります。たとえば、-l オプションは、他のすべてのフラグよりも優先されます。 -E フラグと -F フラグを指定すると、最後に指定したフラグが優先されます。
-b | 各行の前に、その行が見つかったブロック番号を付けます。このフラグを使用すると、ディスク・ブロック番号をコンテキストで見つけるときに便利です。 -b フラグは、標準入力またはパイプからの入力と一緒には使用できません。 |
-c | 一致した行の数のみを表示します。 |
-E | 拡張正規表現 (ERE) として指定されたものとして、指定された各パターンを扱います。
ERE の NULL 値は各行に一致します。
注: -E フラグを指定した grep コマンドは、エラー・メッセージと使用方法メッセージ、および -s フラグの機能が異なるほかは、egrep コマンドと同じです。 |
-e PatternList | 複数の検索パターンを指定します。このフラグは単純なパターンと同じように機能しますが、パターンが - (負) で始まるときに有効です。パターンは改行文字で区切らなければなりません。NULL パターンは、2 つの隣接する改行文字か、改行文字が後ろに続く引用符 ("¥n) で指定できます。 -E フラグも -F フラグも指定しなければ、各パターンは基本正規表現 (BRE) のように扱われます。複数の -e および -f フラグは、grep によって受け入れられます。行のマッチング時には、すべての指定されたパターンが使用されますが、評価の順序の指定は解除されます。 |
-F | 指定した各パターンを、正規表現ではなく文字列として扱います。NULL 文字列は各行に一致します。
注: -F フラグを指定した grep コマンドは、 fgrep コマンドと同じですが、エラー・メッセージと使用方法メッセージ、および -s フラグの機能が異なります。 |
-f PatternFile | 検索パターンの入ったファイルを指定します。各パターンは改行文字で区切らなければなりません。また、空の行は NULL パターンと見なされます。 -E フラグも -F フラグも指定しなければ、各パターンは基本正規表現 (BRE) のように扱われます。 |
-h | マッチング行を含むファイル名がその行に付加されることを防ぎます。複数のファイルを指定したときに、ファイル名を抑止します。 |
-i | 比較するときには、大文字と小文字の区別を無視します。 |
grep "^[a-zA-Z]" pgm.s
これにより、pgm.s 内から英文字で始まるすべての行が表示されます。
grep ¥¥$ test2
シェルが grep コマンドに、¥$ (1 つの円記号またはバックスラッシュとドル記号) を渡すようにするには、¥¥ (2 つの円記号またはバックスラッシュ) 文字が必要です。¥ (1 つの円記号またはバックスラッシュ) は、後ろに続く文字 (この例では $) が正規表現の文字ではなく、通常の文字であることを grep コマンドに伝えます。円記号 (またはバックスラッシュ) などのエスケープ文字の使用を避けるには、fgrep コマンドを使用します。