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]マイナスは、現在の照合シーケンスに従って通らなければならないことを意味します。 照合シーケンスは文字範囲内で使用する等価クラスを定義できます。 これは、高速の決定論的なアルゴリズムを使用しますが、このアルゴリズムは指数のスペースを必要とすることがあります。
- 各行は 2048 バイト以内に制限されています。
- 段落 ( P- フラグの下) は、現在 5000 文字の長さに制限されています。
- 予測できない結果を生ずるので、grep コマンドを スペシャル・ファイル上で実行するのは避けてください。
- 入力行には、NULL 文字を使用しないでください。
- 入力ファイルの終わりには、改行文字を付けてください。
- 複数のフラグを同時に指定できますが、 フラグの中には他のフラグを指定変更してしまうものがあります。 例えば、-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 コマンドへのシンボリック・リンクを指定します。 |