fgrep(1)
fgrep --
文字列によるファイルの検索
形式
fgrep [-bci] [-h|-l] [-nvx][string] [file... ]
機能説明
fgrep (固定文字列 grep) コマンドは、ファイルを検索してある文字列を探し、その文字列を含むすべての行を出力します。fgrep は正規表現に一致するパターンを検索するのではなく、文字列を検索するという点で、grep や egrep とは異なっています。fgrep では高速でメモリの使用量が少ないアルゴリズムを用いています。
fgrep は、環境変数 LC_CTYPE (environ(5) の LANG を参照) に指定されたロケールに従って、補助コードセット文字を処理します。ただし後述する -i オプションに関しては例外です。パターン検索はバイト単位ではなく文字単位で行います。
fgrep は
``$''、``
''、``[''、``^''、``|''、``(''、``)''、``\''等の文字を文字どおりに解釈します。それは fgrep が egrep のように完全正規表現を認識しないためです。これらの文字はシェルにとっても特別な意味があるので、string 全体を単一引用符で(' . . . ')と囲むのが最も安全です。
入力ファイルが指定されない場合、fgrep は標準入力を検索します。通常、文字列が見つかった行はそれぞれ標準出力に出力します。複数の入力ファイルが指定された場合には、各行の先頭にファイル名が付けられます。
コマンド行オプションは以下のとおりです。
- -b
-
各行の先頭にその行があるブロック番号を付けます。このオプションは、文脈によってブロック番号を見つけだす場合に便利です(最初のブロックは 0 です)。
- -c
-
パターンを含む行の行数だけを出力します。
- -h
-
複数ファイルを検索する場合にファイル名を出力しません。
- -i
-
比較時に大文字と小文字の区別をしません。1 バイト文字だけに有効です。
- -l
-
パターンを含む行があるファイルのファイル名を(1 つずつ)復帰改行で区切って出力します。ファイル内に一致する文字列がいくつも含まれていてもファイル名は 1 度しか出力されません。入力ファイルが stdin の場合、メッセージロケール次第で、
(standard input)
のようなメッセージが表示されます。
- -n
-
各行の先頭にファイル内の行番号を入れます(最初の行は 1 です)。
- -v
-
パターンを含む行を除く全行を出力します。
- -x
-
1 行が完全に一致する行だけを出力します。
- -e special_string
-
special_string (- で始まる文字列) を検索します。
- -f file
-
file から文字列のリストを取り出します。
ファイル
- /usr/lib/locale/locale/LC_MESSAGES/uxcore
-
言語特有のメッセージファイル(environ(5) の LANG 参照)
関連項目
ed(1),
grep(1),
sed(1),
sh(1)
終了コード
一致するものがあった場合の終了状態は 0、一致するものがなかった場合には 1、構文エラーまたはアクセス不能エラーがあった場合には(一致するものがあっても) 2 となります。
注意
理想的には grep に類するコマンドは 1 つであるべきです。時間はかかっても空間はあまり使わないのが望ましい場合や、空間はたくさん使っても時間がかからないのが望ましい場合等、様々な場合がありますが、1 つでそのすべての場合に対応できるようなアルゴリズムは存在しません。1 行の長さは BUFSIZ バイトまでとします。それより長い行は切り捨てられます。BUFSIZ は /usr/include/stdio.h で定義されています。
SCO UnixWare Forum Beta Release (BL12) -- September 1997
© 1997 The Santa Cruz Operation, Inc. All rights reserved.