egrep コマンド

目的

ファイルの内容をパターンで検索します。

構文

エグレップ [ -h ] [ I ] [ P-[ セパレーター ] ] [ -s ] [ -ウー ] [ -v (V) ] [ -w (W) ] [ -x (X) ] [ -y (Y) ] [ [ -b ] [ N ] | [ 「-c」 | - | -Q (Q) ] ] { { -e (E)パターン | 「-f」文字列ファイル } ... | パターン } [ ファイル ... ]

説明

egrep コマンドは入力ファイル (デフォルトは標準入力) を検索して、Pattern パラメーターで指定したパターンに一致する行を探します。 These patterns are full regular expressions as in the エド command (except for the \ (backslash) and \\ (double backslash)). また、egrep コマンドには次の規則が適用されます。

  • + (正符号) が後に続く正規表現は、その正規表現の 1 つ以上のオカレンスと一致します。
  • ? が後に続く正規表現 (疑問符) は、正規表現の 0 個または 1 個のオカレンスに一致します。
  • | (縦線) または改行文字で区切られた複数の正規表現は、いずれかの正規表現と一致するストリングと一致します。
  • 正規表現は () で囲むことができます。 (括弧) を使用してグループ化します。

改行文字は、正規表現で一致させることはできません。

演算子の優先順位は、[、]、*、?、+、連結、|、改行文字の順です。

注: エグレップ コマンドは、 -E (E) フラグを指定した グレップ コマンドと同じです。ただし、エラー・メッセージと使用法メッセージは異なり、 -s フラグの機能は異なります。

複数の ファイル パラメーターを指定すると、 エグレップ コマンドは一致した行を含むファイルを表示します。 シェルに対して特別な意味を持つ文字 ($、*、[、|、^、(、)、¥) は、 Pattern パラメーター内では引用符で囲まなければなりません。 Pattern パラメーターが単純な文字列でない場合、 通常はパターン全体を単一引用符で囲まなければなりません。 次のような式の中で、[a-z]マイナスは、現在の照合シーケンスに従って通らなければならないことを意味します。 照合シーケンスは文字範囲内で使用する等価クラスを定義できます。 これは、高速の決定論的なアルゴリズムを使用しますが、このアルゴリズムは指数のスペースを必要とすることがあります。

注:
  1. 各行は 2048 バイト以内に制限されています。
  2. 段落 ( P- フラグの下) は、現在 5000 文字の長さに制限されています。
  3. 予測できない結果を生ずるので、grep コマンドを スペシャル・ファイル上で実行するのは避けてください。
  4. 入力行には、NULL 文字を使用しないでください。
  5. 入力ファイルの終わりには、改行文字を付けてください。
  6. 複数のフラグを同時に指定できますが、 フラグの中には他のフラグを指定変更してしまうものがあります。 例えば、-l-n を同時に指定すると、ファイル名だけが標準出力に書き出されます。

フラグ

項目 説明
-b 各行の前に、その行が見つかったブロック番号を付けます。 このフラグを使用すると、ディスク・ブロック番号をコンテキストで見つけるときに便利です。 -b フラグは、標準入力またはパイプからの入力と一緒には使用できません。
-c 一致した行の数のみを表示します。
-e (E) パターン パターンを指定します。 これは、単純パターン と同じ働きをしますが、パターン が - (ハイフン) で始まる場合に便利です。
-f StringFile 文字列を含むファイルを指定します。
-h 複数ファイルの処理中に、ファイル名を抑止します。
-i 比較を行うときに、大文字と小文字の区別を無視します。
-l 一致している行のファイルの名前を表示します (1 回)。 各ファイル名は、改行文字で区切られます。 標準入力が検索される場合、パス名は以下のようになります。"(StandardInput)"が返されます。
-n 各行の前に、ファイル内におけるその行の相対行番号を付けます。
P-[セパレーター] 一致する行を含むパラグラフ全体を表示します。 パラグラフは、Separator パラメーターで指定された、 パラグラフ・セパレーターで区切られます。パラグラフ・セパレーターは検索パターンと同じ書式のパターンです。 パラグラフ・セパレーターを含んでいる行は、セパレーターとしてのみ使用され、出力には含まれません。 デフォルトのパラグラフ・セパレーターはブランク行となります。
-q 行の一致に関係なく、すべての出力が標準出力に書き出されないようにします。 入力行を選択すると、状況 0 で終了します。
-s エラー・メッセージだけを表示します。 これは、状況を検査するのに便利です。
-u 出力をバッファーしません。
-v 指定されたパターンと一致する行を除くすべての行を表示します。
-w ワードの検索を行います。
-x 指定したパターンに正確に一致し、余分の文字がない行を表示します。
-y 比較を行うときに、大文字と小文字の区別を無視します。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 一致が見つかりました。
1 一致が見つかりませんでした。
>1 構文エラーが見つかったか、(一致が見つかったとしても) ファイルにアクセスできませんでした。

パターン・マッチング文字 +、?、|、(、) を含む拡張パターンを使用するには、次のように入力します。

  egrep "\(([A-z]+|[0-9]+)\)" my.txt

これは、小括弧内の文字や小括弧内の数字を含む行を表示しますが、小括弧で囲まれた文字と数字の組み合わせは表示しません。 一致する(y)および(783902)、ただしそうではない(alpha19c).

注: エグレップ コマンドを使用する場合、¥ (円記号の後に左括弧が続く) または ¥ (円記号の後に右括弧が続く) は、テキスト内の括弧と一致しますが、((左括弧) および) (右括弧) は、パターンの一部をグループ化する特殊文字です。 その逆は、 グレップ コマンドを使用する場合に当てはまります。

ファイル

項目 説明
/usr/bin/egrep egrep コマンドへのハード・リンクが入っています。
/bin/egrep egrep コマンドへのシンボリック・リンクを指定します。