[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grep
の呼び出し
grep
は,POSIX.2とGNUの拡張の,豊富なオプションセット
を持っています.
grep
は,`-q'オプショ
ンが無く,`-s'オプションは,GNU grep
の`-q'オプ
ションのように動作するので,伝統的なgrep
は,GNU
grep
と異なり,POSIX.2準拠ではありません.伝統的な
grep
との移植性を考慮するシェルスクリプトは,`-q'と
`-s'を避け,代わりに`/dev/null'に,出力をリダイレクトするべき
です.
grep
は,与えられた行を,一度以上出力しません.
grep
のバージョンナンバーを標準出力に出力します.このバージョン
ナンバーをすべてのバグレポートに含めてください.
grep
は通常,バイナリファイルがマッ
チしたことを告げる1行のメッセージの出力する,または,マッチしない場合は
なにもメッセージを出力しないのどちらかです.typeが
`without-match'の場合,grep
はバイナリファイルはマッチしな
いと考えます.これは`-I'オプションと同じです.typeが
`text' の場合,grep
はバイナリファイルをテキストであるかの
ように処理します.これは`-a'オプションと同じです.警告:
`--binary-files=text'は,端末に出力されるバイナリのゴミを出力する可
能性があり,出力が端末で,且つ端末ドライバがそれをコマンドとして解釈した
場合,それは厄介な副作用となるはずです.
grep
を実行するときは,
`-u'(`--unix-byte-offsets')オプションが使われているかどうかに
依存して,バイトオフセットを出力します.以下を参照してください.
grep
は全てのディレクトリに対しエラーメッセージを出力したり,そ
れらを何事もなく飛ばしたりします).actionが`skip'の場合,ディ
レクトリは何事もなく飛ばされます.actionが`recurse'の場合,
grep
はそれぞれのディレクトリ下の全てのファイルを再帰的に読み込
みます.これは,`-r'オプションと同じです.
gzip -cd foo.gz |grep --label=foo something
のよ
うな,zgrepツールに対して,これは特に役に立ちます.
grep
は,それ以降に行が存在していても,既存のマッチ行の最後以降
に標準入力を確実に配置します.これで,検索の概要を処理が呼び出し可能にな
ります.例えば,以下のシェルスクリプトでそれを利用してみます.
while grep -m 1 PATTERN do echo xxxx done < FILE |
しかし,以下のものはパイプが通常ファイルではないので動作しません.
# This probably will not work. cat FILE | while grep -m 1 PATTERN do echo xxxx done |
grep
がnum個のマッチ行の後で停止したとき,それ以降の行を
出力します.文中にマッチする行がない間は,別のマッチ行に遭遇したときに
grep
は停止します.`-c'や`--count'オプションも使用さ
れているとき,grep
はnum個以上数えません.`-v'や
`--invert-match'オプションも使用されているとき,num個のマッチ
しない行を出力した後で停止します.
grep
は,ファイルから読み込んだ最初の32kBの内容を見てファ
イル形式を推測します.grep
が,ファイルをテキストファイルだと決
定した場合,元ファイルの内容からCR
文字を取ります(^
と
$
を使った正規表現が正確に働くためです).`-U'で指定してこの推
測を覆す場合,全てのファイルは読み込まれ,逐語的にマッチ検索する方式に渡
され,ファイルのそれぞれの行の終りがCR/LF
の組のテキストファイルの
場合,失敗する正規表現も出てきます.このオプションは,MS-DOSと
MS-Windowsのみでサポートされています.
grep
は,ファイル
があたかもUnixスタイルのファイルであるかのように,バイトオフセットを報告
するよう切替えます.すなわち,バイトオフセットは,取り除かれたCR
文字を無視します.これは,Unixマシンでgrep
を実行するのと同じ結
果を生成します.このオプションは,`-b'オプションと一緒に使用しない
限り効果がありません.MS-DOSとMS-Windows以外のプラットホームでは効
果がありません.
read
システムコールの代わり
に,mmap
システムコールを使用します.`--mmap'が,良いパフォー
マンスを与える場合もあります.しかし,grep
処理中に入力ファイル
が小さくなる場合や,I/Oエラーが生じた場合,`--mmap'は,(coreの吐き
出しを含め)未定義の動作をすることもあります.
NUL
文字)
を出力します.例えば,`grep -lZ'は,それぞれのファイル名の後,通常
の改行の代わりに,0バイトを出力します.このオプションは,ファイル名が改
行のような普通でない文字を含む場合でも出力を曖昧にしません.このオプショ
ンは,改行文字を含むような任意のファイル名を処理するとき使用する,
`find -print0',`perl -0',`sort -z'と`xargs -0'のよ
うなコマンドとともに使用されます.
NUL
文字)で終端
され,入力を1行として扱います.`-Z'や`--null'オプションのよう
に,このオプションは,任意のファイル名を処理する際の`sort -z'のよう
なコマンドとともに使用されます.
grep
マッチエンジンの変形を使用するかどうかを制御する,追加のオ
プションもあります.See section 4. grep
プログラム.
grep
の動作は,以下の環境変数に影響されます.
ロケールLC_foo
は,3つの環境変数LC_ALL
,
LC_foo
,そしてLANG
を,その順番で調査して指定されます.
これらの変数の最初に設定されているものでロケールを指定します,例えば,
LC_ALL
が設定されておらずLC_MESSAGES
が`pt_BR'に設定され
ている場合,LC_MESSAGES
ロケールとしてブラジルのポルトガル語が使用
されます.これらの環境変数が全く設定されていない場合,またはロケールのカ
タログがインストールされていない場合,またはgrep
が国際言語サポー
ト(NLS)無しでコンパイルされていない場合は,Cロケールが使用されます.
GREP_OPTIONS
GREP_OPTIONS
が
`--binary-files=without-match --directories=skip' の場合,
grep
は,2つのオプション`--binary-files=without-match'と
`--directories=skip'が,明確なオプションの前に指定されているように
動作します.オプション指定は,空白で分割します.バックスラッシュは次の文
字をエスケープするので,空白やバックスラッシュを含むオプションを指定する
とき使用することができます.
GREP_COLOR
LC_ALL
LC_COLLATE
LANG
LC_COLLATE
ロケールを指定し,それは`[a-z]'のよ
うな範囲表現を解釈するために使用される,照合の手続きを決定します.
LC_ALL
LC_CTYPE
LANG
LC_CTYPE
ロケールを指定し,それは例えば,どの文字が
空白となるかといった,文字の型を決定します.
LC_ALL
LC_MESSAGES
LANG
LC_MESSAGES
ロケールを指定し,それは,grep
がメッセージで使用する言語を決定します.デフォルトのCロケールでは,アメ
リカ英語のメッセージを使用します.
POSIXLY_CORRECT
grep
は,POSIX.2で要求されているように
動作します.そうでない場合,grep
は,他のGNUプログラムのよ
うに動作します.POSIX.2は,ファイル名が続くオプションは,ファイル名
として扱う必要があると要求します.デフォルトで,そのようなオプションは,
オペランドリストの前に順序を変え,オプションとして扱われます.また,
POSIX.2は,理解できなかったオプションを「不正」と診断することも要求
しますが,本当に規則に反しているわけではないので,デフォルトでは「無効」
と診断されます.POSIXLY_CORRECT
は,以下で述べる
_N_GNU_nonoption_argv_flags_
も使用できないようにします.
_N_GNU_nonoption_argv_flags_
N
は,grep
のプロセスID番号です.)この環境
変数の値のi番目の文字が`1'の場合,grep
のi番目
のオペランドは,明らかにそうであってもオプションと考えません.シェルは,
実行するそれぞれのコマンドに対し,この変数を環境に置くことができ,それを
指定すると,オペランドはワイルドカードを展開したファイル名の結果となり,
そのため,オプションとして扱われません.この動作は,GNUCライブラリ
のみで,POSIXLY_CORRECT
が設定されていないときのみ利用可能です.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |