Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ grep(1) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ex(1)

sed(1)

sh(1)

GREP(1)  —  UNIX 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 から読み取られます。 いずれの場合にも、複数の入力ファイルがある場合は、 ファイル名が出力されます。 $ ∗ [ ^ | ( ) および \ を 正規表現中 に使用するときは注意してください。 これらの文字は、シェルにとっても意味があるからです。 正規表現 引数全体を、シングルクォート´´ で囲むのが一番確実です。 fgrep は、(復帰改行で分離された) strings のうちの 1つを含む行を探します。 egrep は、拡張された正規表現を受け付けます。 以下の説明中の‘文字’には、改行は含まれません。

改行以外の 1文字があとに付けられた \ は、その文字と一致します。

文字 ^ は、行の先頭と一致します。 文字 $ は、行の終りと一致します。

.  (ピリオド)は、どの文字とも一致します。

特別な意味を持たない文字は、その文字と一致します。

大かっこ [] で囲まれた文字列はその文字列中の任意の 1文字と一致します。 文字コードの範囲は ‘a−z0−9’ のように省略して表すことができます。 ‘]’ は文字列の先頭文字としてだけ使用できます。 定数 ‘−’ は範囲指示子と間違われない箇所に置かなければなりません。

∗(アスタリスク)があとに付けられた正規表現は 0 または それ以上のその正規表現に一致します。 +(プラス)があとに付けられた正規表現は 1 つまたは複数のその正規表現に一致します。 ?(疑問符)があとに付けられた正規表現は 0 または 1 つのその正規表現に一致します。

連結された 2つの正規表現は 最初の正規表現の一致するもののあとに
 2 番目の正規表現の一致するものが続いているものに一致します。
 | または改行で区切られた2つの正規表現は どちらかの正規表現に一致するものに一致します。

かっこで囲まれた 1つの正規表現は その正規表現の一致するものに一致します。 同じかっこレベルでの演算子の優先順位は、 [ ]、 ∗+?、 連結、 |、 そして改行の順です。 理想的には、 grep 1つだけですべてのことができればよいのですが、 処理が速く、かつ性能の優れたアルゴリズムが分かっていません。

関連事項

ex(1), sed(1), sh(1)

診断

終了ステータスは一致するものがあった場合は 0 、 一致するものがなかった場合は 1 、 文法エラーがあった場合またはファイルがアクセスできなかった場合は 2 です。

バグ

1行の長さは、256 文字までに制限されています。 これより長い行は切り捨てられます。

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026