fgrep [ -h] [ -i] [ -s] [ -v] [ -w ] [ -x] [ -y ] [ [ -b] [ -n] | [ -c | -l | -q ] ] [ -pSeparator] {Pattern | -ePattern | -fStringFile} [File...]
fgrep コマンドは、File パラメーター (デフォルトでは標準入力) で指定された入力ファイルを検索してパターンと一致する行を探します。 fgrep コマンドは、特に固定長文字列の Pattern パラメーターを検索します。fgrep コマンドは、 File パラメーターに複数のファイルを指定した場合、一致する行が含まれているファイルを表示します。
fgrep コマンドは、式と一致するパターンを検索するのではなく、文字列を検索するという点で、grep および egrep コマンドとは異なります。fgrep コマンドは、高速でコンパクトなアルゴリズムを使用します。 fgrep コマンドでは、$、*、[、 |、(、)、および ¥ 文字を文字どおりに解釈します。これらの文字は、grep および egrep コマンド内にあるとおり、正規表現の一部として解釈されません。これらの文字は、シェルにとって特別な意味を持っているので、文字列全体が単一引用符 ('...') に囲まれていなければなりません。ファイルを指定しなければ、fgrep コマンドでは、標準入力を前提とします。通常、検索された各行は標準出力にコピーされます。入力ファイルが複数の場合は、ファイル名は検索された各行の前に出力されます。
注:
- fgrep コマンドは、 -F フラグを指定した grep コマンドと、同じ機能を実行しますが、エラー・メッセージと使用方法メッセージ、および -s フラグの機能が異なります。
- 各行は 2048 バイト以内に制限されています。
- 現在、パラグラフ (-p フラグの指定) の長さは、5000 文字に限定されています。
- 予測できない結果を生ずるので、grep コマンドをスペシャル・ファイル上で実行するのは避けてください。
- 入力行には、NULL 文字を使用しないでください。
- 入力ファイルは、改行文字で終らなければなりません。
- 複数のフラグを同時に指定できますが、フラグの中には他のフラグをオーバーライドしてしまうものがあります。たとえば、-l と -n を同時に指定すると、ファイル名だけが標準出力に書き出されます。
fgrep strcpy *.c
これによって、.c 文字列で終わる名前を持つ現行ディレクトリーにあるすべてのファイル内の文字列 strcpy が検索されます。
これによって、左中括弧と右中括弧を含んでいる pgm.c 内の行の数が表示されます。
C プログラムで、1 行に複数の { (左中括弧) または } (右中括弧) を付けなかった場合、および左右の中括弧が対応している場合に、正しい条件を満たしていれば 2 つの数字が同じになります。この数字が同じでない場合には、次のように入力すれば、中括弧を含んでいる行を、ファイル内の順序で表示することができます。
egrep {¥|} pgm.c
これによって、.c で終わる現行ディレクトリー内のファイルが検索されて、文字列 strcpy を含んだファイルの名前が表示されます。