GREP(1) — NEWS-OS Programmer’s Manual
名称
grep, egrep, fgrep − ファイルをサーチしてパターンを探す
形式
grep [ option ] ... expression [ file ] ... egrep [ option ] ... [ expression ] [ file ] ... fgrep [ option ] ... [ strings ] [ file ] ...
解説
grep ファミリのコマンドは file (デフォルトは標準入力)をサーチし、パターンに一致する行を探し出します。 通常、見つけ出された各行は標準出力にコピーされます。 grep で使用できるパターンは限定された ex(1) スタイルの正規表現であり、 grep はコンパクトな非決定性アルゴリズムを使用しています。 egrep で使用できるパターンは完全な正規表現です。 egrep は高速な決定性アルゴリズムを使用していますが、 指数関数的なスペースを必要とすることもあります。 fgrep で使用できるパターンは固定された文字列 strings であり、 アルゴリズムは高速でコンパクトです。 次のオプションが使用できます。
−v 一致した行を除くすべての行が表示されます。
−x 行全体がそっくり一致したものだけが表示されます (fgrep だけ)。
−c 一致した行数だけが表示されます。
−l 一致した行があるファイルの名前だけが、(1 つずつ)改行で区切られて表示されます。
−n 各行の前に行番号が付けられます。
−b 各行の前にその行が見つかったブロック番号が付けられます。 これは、文脈によってディスクブロック番号を見つける時に便利です。
−i 比較を行う時に大文字と小文字の別が無視されます。 つまり、大文字も小文字も同じであると見なされます。 これは grep と fgrep にだけ適用されます。
−s サイレントモード。 (エラーメッセージ以外は)何も表示されません。 これは、エラー状態をチェックする場合に有用です。
−w 正規表現が、あたかも \< と \> とで囲まれているかのように (ex(1) 参照)、 1 個のワードとしてサーチされます (grep だけ)。
−e expression
単一の正規表現の引数と同じですが、 正規表現が − で始まっている場合に便利です。
−f file 正規表現 (egrep) または文字列のリスト (fgrep) が file から読み取られます。 いずれの場合にも、複数の入力ファイルがある場合は、 ファイル名が出力されます。 $ ∗ [ ^ | ( ) および \ を expression 中に使用するときは注意してください。 これらの文字は、シェルにとっても意味があるからです。 expression 引数全体を、シングルクォート ´ ´ で囲むのが一番確実です。 fgrep は、(復帰改行で分離された) strings のうちの 1 つを含む行を探します。 egrep は、拡張された正規表現を受け付けます。 以下の説明中の「文字」には、改行は含まれません。
改行以外の 1 文字があとに付けられた \ は、その文字と一致します。
文字 ^ は、行の先頭と一致します。 文字 $ は、行の終りと一致します。
. (ピリオド)は、どの文字とも一致します。
特別な意味を持たない文字は、その文字と一致します。
大かっこ [] で囲まれた文字列はその文字列中の任意の 1 文字と一致します。 文字コードの範囲は a−z0−9 のように省略して表すことができます。 ] は文字列の先頭文字としてだけ使用できます。 文字どおりの − は範囲指示子と間違われない箇所に置かなければなりません。
∗ (アスタリスク)があとに付けられた正規表現は 0 または それ以上のその正規表現に一致します。 + (プラス)があとに付けられた正規表現は 1 つまたは複数のその正規表現に一致します。 ? (疑問符)があとに付けられた正規表現は 0 または 1 つのその正規表現に一致します。
連結された 2 つの正規表現は 最初の正規表現の一致するもののあとに 2 番目の正規表現の一致するものが 続いているものに一致します。 | または改行で区切られた 2 つの正規表現は どちらかの正規表現に一致するものに一致します。
かっこで囲まれた 1 つの正規表現は その正規表現の一致するものに一致します。 同じかっこレベルでの演算子の優先順位は、 [ ]、∗+?、 連結、 |、 そして改行の順です。 理想的には、 grep 1 つだけですべてのことができればよいのですが、 処理が速く、かつ性能の優れたアルゴリズムが分かっていません。
関連事項
診断
終了ステータスは次のとおりです。
0一致するものがあった場合
1一致するものがなかった場合
2文法エラーがあった場合またはファイルがアクセスできなかった場合
バグ
1 行の長さは、256 文字までに制限されています。 これより長い行は切り捨てられます。
NEWS-OSRelease 4.2.1R