'\" te .\" Copyright 1989 AT&T .\" Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at http://www.opengroup.org/bookstore/. .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html. This notice shall appear on any product containing this material. .TH grep 1 "2011 年 2 月 9 日" "SunOS 5.11" "ユーザーコマンド" .SH 名前 grep \- ファイルにおけるパターンの検索 .SH 形式 .LP .nf \fB/usr/bin/grep\fR [\fB-c\fR | \fB-l\fR | \fB-q\fR] [\fB-bhinsvw\fR] \fIlimited-regular-expression\fR [\fIfilename\fR]... .fi .LP .nf \fB/usr/xpg4/bin/grep\fR [\fB-E\fR | \fB-F\fR] [\fB-c\fR | \fB-l\fR | \fB-q\fR] [\fB-bhinsvx\fR] \fB-e\fR \fIpattern_list\fR... [\fB-f\fR \fIpattern_file\fR]... [\fIfile\fR]... .fi .LP .nf \fB/usr/xpg4/bin/grep\fR [\fB-E\fR | \fB-F\fR] [\fB-c\fR | \fB-l\fR | \fB-q\fR] [\fB-bhinsvx\fR] [\fB-e\fR \fIpattern_list\fR]... \fB-f\fR \fIpattern_file\fR... [\fIfile\fR]... .fi .LP .nf \fB/usr/xpg4/bin/grep\fR [\fB-E\fR | \fB-F\fR] [\fB-c\fR | \fB-l\fR | \fB-q\fR] [\fB-bhinsvx\fR] \fIpattern\fR [\fIfile\fR]... .fi .SH 機能説明 .sp .LP \fBgrep\fR ユーティリティーは、テキストファイルにおいてパターンを検索し、そのパターンを含むすべての行を出力します。grep は、単純な非決定性アルゴリズムを使用します。 .sp .LP \fIpattern_list\fR での \fB$\fR、\fB*\fR、\fB[\fR、\fB^\fR、\fB|\fR、\fB(\fR、\fB)\fR、\fB\\fR などの文字の使い方に注意してください。これらの文字は、シェルにとっても特別な意味があるからです。次のように、\fIpattern_list\fR 全体を単一引用符で囲む (\fB´\fR...\fB´\fR) のがもっとも安全です。 .sp .LP ファイルが指定されない場合は、 \fBgrep\fR は、標準入力を入力とみなします。 検索された各行は、通常、標準出力に出力されます。複数の入力ファイルがある場合は、 検索された各行の前にファイル名が出力されます。 .SS "/usr/bin/grep" .sp .LP \fB/usr/bin/grep\fR ユーティリティーは、\fBregexp\fR(5) のマニュアルページに説明されている正規表現に似た限定正規表現を使用して、パターンマッチングを行います。 .SS "/usr/xpg4/bin/grep" .sp .LP \fB-E\fR と \fB-F\fR の両オプションは、\fB/usr/xpg4/bin/grep\fR の \fIpattern_list\fR の解釈の仕方に影響を与えます。\fB-E\fR を指定すると、\fB/usr/xpg4/bin/grep\fR は \fIpattern_list\fR を完全な正規表現と解釈します (詳細は \fB-E\fR の説明を参照 ) 。\fB-F\fR を指定すると、\fBgrep\fR は \fIpattern_list\fR を固定文字列と解釈します。両方のオプションを省略すると、\fBgrep\fR は \fIpattern_list\fR を基本正規表現と解釈します (詳細は \fBregex\fR(5) のマニュアルページを参照)。 .SH オプション .sp .LP 次のオプションは、\fB/usr/bin/grep\fR と \fB/usr/xpg4/bin/grep\fR の両方のコマンドでサポートされています。 .sp .ne 2 .mk .na \fB\fB-b\fR\fR .ad .RS 6n .rt 検索された各行の先頭にその行のブロック番号を付けます。文脈によりブロック番号を見つけ出す場合に便利です (最初のブロックは 0 です)。 .RE .sp .ne 2 .mk .na \fB\fB-c\fR\fR .ad .RS 6n .rt パターンを含む行の数だけを出力します。 .RE .sp .ne 2 .mk .na \fB\fB-h\fR\fR .ad .RS 6n .rt 一致した行を含むファイル名をその行の先頭に追加しません。複数のファイルを検索するときに使用されます。 .RE .sp .ne 2 .mk .na \fB\fB-i\fR\fR .ad .RS 6n .rt 比較中に大文字と小文字の区別を無視します。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR\fR .ad .RS 6n .rt 一致した行があるファイルのファイル名だけを、1 ファイルずつ復帰改行文字で区切って出力します。パターンが 2 度以上見つかるときは、ファイルの名前を繰り返しません。 .RE .sp .ne 2 .mk .na \fB\fB-n\fR\fR .ad .RS 6n .rt 各行の先頭にファイル内の行番号を付けます (最初の行は 1 です)。 .RE .sp .ne 2 .mk .na \fB\fB-q\fR\fR .ad .RS 6n .rt 非出力。行が一致したかどうかに関わらず、 標準出力には何も書き出しません。入力行に一致した行があった場合、 0 の終了ステータスで処理を終了します。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR\fR .ad .RS 6n .rt 存在しないファイルや読めないファイルに対してのエラーメッセージを抑制します。 .RE .sp .ne 2 .mk .na \fB\fB-v\fR\fR .ad .RS 6n .rt パターンを含む行を除いたすべての行を出力します。 .RE .sp .ne 2 .mk .na \fB\fB-w\fR\fR .ad .RS 6n .rt 表現が \fB\<\fR と \fB\>\fR で囲まれている場合のように、表現を単語として検索します。 .RE .SS "/usr/xpg4/bin/grep" .sp .LP 次のオプションは、\fB/usr/xpg4/bin/grep\fR のみでサポートされています。 .sp .ne 2 .mk .na \fB\fB-e\fR \fIpattern_list\fR\fR .ad .RS 19n .rt 入力の検索時に用いる 1 つまたは複数のパターンを指定します。複数のパターンを \fIpattern_list\fR に指定する場合、各々を復帰改行文字 (NEWLINE) で区切る必要があります。空のパターンは、復帰改行文字を 2 つ連続して \fIpattern_list\fR に指定することにより表せます。\fB-E\fR または \fB-F\fR オプションも指定した場合を除き、各パターンは基本正規表現として扱われます。\fBgrep\fR コマンドを使って、複数個の \fB-e\fR および \fB-f\fR オプションを指定することが可能です。行のマッチングにおいて、指定されたパターンはすべて使用されますが、評価の順序は不特定です。 .RE .sp .ne 2 .mk .na \fB\fB-E\fR\fR .ad .RS 19n .rt 完全な正規表現を使ってマッチングを行います。指定した各パターンは完全な正規表現として扱われます。ある完全な正規表現の全体が入力行と一致したとき、 その行は一致したことになります。空の完全な正規表現は、すべての行と一致します。各パターンは、\fBregex\fR(5) のマニュアルページに記述されているように、完全な正規表現 として解釈されます。ただし \fB\(\fR や \fB\)\fR は例外で、以下の指定も含まれます。 .RS +4 .TP 1. 後ろに \fB+\fR が付いている完全な正規表現。 これは、 その完全な正規表現が 1 回以上現れるものに一致します。 .RE .RS +4 .TP 2. 後ろに \fB?\fR が付いている完全な正規表現。 これは、 その完全な正規表現が 0 回 または 1 回現れるものに一致します。 .RE .RS +4 .TP 3. | または復帰改行で区切られた複数の完全な正規表現。 これは、どちらかの完全な正規表現と一致する文字列に一致します。 .RE .RS +4 .TP 4. グループ化のために、 丸かっこ \fB()\fR で囲まれた完全な正規表現。 .RE 演算子の優先順位は、\fB[ ]\fR、\fB* ? +\fR、次が連結、その次が | と復帰改行となります。 .RE .sp .ne 2 .mk .na \fB\fB-f\fR \fIpattern_file\fR\fR .ad .RS 19n .rt \fIpattern_file\fR が示すパス名で指定したファイルから、1 つまたは複数のパターンを読み込みます。\fIpattern_file\fR 中のパターンの終了は、復帰改行文字により表されます。空のパターンは、\fIpattern_file\fR 中に空の行を記述することにより表せます。\fB-E\fR または \fB-F\fR オプションも指定した場合を除き、各パターンは基本正規表現として扱われます。 .RE .sp .ne 2 .mk .na \fB\fB-F\fR\fR .ad .RS 19n .rt 固定文字列を使ってマッチングを行います。指定された各パターンを、正規表現ではなく文字列と見なします。いずれかのパターンが連続したバイトとして入力行の中に現れた場合、その行は一致します。空の文字列はすべての入力行と一致します。詳細については、\fBfgrep\fR(1) を参照してください。 .RE .sp .ne 2 .mk .na \fB\fB-x\fR\fR .ad .RS 19n .rt 固定文字列全体または正規表現と完全に一致する 入力行だけを、一致する行とみなします。 .RE .SH オペランド .sp .LP 次のオペランドがサポートされています。 .sp .ne 2 .mk .na \fB\fIfile\fR\fR .ad .RS 8n .rt パターンを検索するファイルのパス名。\fIfile\fR オペランドを指定しないと、標準入力が使用されます。 .RE .SS "/usr/bin/grep" .sp .ne 2 .mk .na \fB\fIpattern\fR\fR .ad .RS 11n .rt 入力の検索時に用いるパターンを指定します。 .RE .SS "/usr/xpg4/bin/grep" .sp .ne 2 .mk .na \fB\fIpattern\fR\fR .ad .RS 11n .rt 入力の検索時に用いる 1 つまたは複数のパターンを指定します。オペランドは \fB-e\fR \fIpattern_list\fR が指定されたものとして扱われます。 .RE .SH 使用法 .sp .LP \fB-c\fR、\fB-l\fR、および \fB-q\fR オプションを同時に指定することはできません。同時に指定した場合、\fB-q\fR は \fB-c\fR よりも優先され、c は \fB-l\fR よりも優先されます。 .sp .LP \fB-e\fR \fIpattern_list\fR オプションの指定は、\fIpattern_list\fR オペランドと同じ結果をもたらしますが、\fIpattern_list\fR がハイフン区切り文字で始まる場合には便利な方法です。また、複数のパターンを別個の引数として使用したい場合にも便利な方法です。 .sp .LP \fB-e\fR と \fB-f\fR の両オプションは、それぞれ複数個指定できます。入力テキスト行のマッチングにおいて、\fBgrep\fR は指定されたすべてのパターンを使用します。なお、評価の順序は指定されないので注意してください。空の文字列をパターンとして使用したいときは、すべての行と一致するそのパターンを最初に記述し、それ以外のパターンをうまく無視させることができます。 .sp .LP \fB-q\fR オプションは、一群のファイル中に特定のパターンまたは文字列が存在しているかどうかを簡単に見分ける手段として使えます。複数のファイルを検索する場合、最初に一致するものを見つけたところで処理を終了するので、性能が向上します。また、引数として複数のファイルを設定する場合でも、それほど注意は必要ありません。なぜなら、前の方の file オペランドで設定したファイルでアクセスエラーや読み取りエラーが発生しても、そのあとで一致するものが見つかれば、\fBgrep\fR は 0 の終了ステータスで終了するためです。 .SS "大規模ファイルの動作" .sp .LP ファイルが 2G バイト (2^ 31 バイト) 以上ある場合の \fBgrep\fR の動作については、\fBlargefile\fR(5) を参照してください。 .SH 使用例 .LP \fB例 1 \fRある文字列をすべて検索する .sp .LP 以下の例は、\fBtext.mm\fR というファイルを検索し、\fBPosix\fR という文字列 (大文字と小文字は区別しない) が現れている箇所すべてを行番号とともに出力します。 .sp .in +2 .nf example% \fB/usr/bin/grep -i -n posix text.mm\fR .fi .in -2 .sp .LP \fB例 2 \fR空の行をすべて検索する .sp .LP 次の例は、標準入力中の空の行をすべて見つけるものです。 .sp .in +2 .nf example% \fB/usr/bin/grep ^$\fR .fi .in -2 .sp .sp .LP または .sp .in +2 .nf example% \fB/usr/bin/grep -v .\fR .fi .in -2 .sp .LP \fB例 3 \fRある文字列を含む行を検索する .sp .LP 以下のコマンドはすべて、\fBabc\fR と \fBdef\fR という 2 つの文字列のどちらかまたは両方を含んでいる行をすべて出力します。 .sp .in +2 .nf example% \fB/usr/xpg4/bin/grep 'abc def'\fR example% \fB/usr/xpg4/bin/grep -e 'abc def'\fR example% \fB/usr/xpg4/bin/grep -e 'abc' -e 'def'\fR example% \fB/usr/xpg4/bin/grep -E 'abc|def'\fR example% \fB/usr/xpg4/bin/grep -E -e 'abc|def'\fR example% \fB/usr/xpg4/bin/grep -E -e 'abc' -e 'def'\fR example% \fB/usr/xpg4/bin/grep -E 'abc def'\fR example% \fB/usr/xpg4/bin/grep -E -e 'abc def'\fR example% \fB/usr/xpg4/bin/grep -F -e 'abc' -e 'def'\fR example% \fB/usr/xpg4/bin/grep -F 'abc def'\fR example% \fB/usr/xpg4/bin/grep -F -e 'abc def'\fR .fi .in -2 .sp .LP \fB例 4 \fRある文字列と完全に一致する行を検索する .sp .LP 以下の 2 つのコマンドはともに、\fBabc\fR または \fBdef\fR のどちらかの文字列と完全に一致している行をすべて出力します。 .sp .in +2 .nf example% \fB/usr/xpg4/bin/grep -E '^abc$ ^def$'\fR example% \fB/usr/xpg4/bin/grep -F -x 'abc def'\fR .fi .in -2 .sp .SH 環境 .sp .LP \fBgrep\fR の実行に影響を与える次の環境変数についての詳細は、\fBenviron\fR(5) を参照してください。\fBLANG\fR、\fBLC_ALL\fR、\fBLC_COLLATE\fR、\fBLC_CTYPE\fR、\fBLC_MESSAGES\fR、および \fBNLSPATH\fR。 .SH 終了ステータス .sp .LP 次の終了ステータスが返されます。 .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 5n .rt 一致するものが 1 つ以上見つかりました。 .RE .sp .ne 2 .mk .na \fB\fB1\fR\fR .ad .RS 5n .rt 一致するものが 1 つも見つかりませんでした。 .RE .sp .ne 2 .mk .na \fB\fB2\fR\fR .ad .RS 5n .rt (一致するものが見つかった場合でも) 構文エラーが検出された、またはアクセスできないファイルがありました。 .RE .SH 属性 .sp .LP 属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。 .SS "/usr/bin/grep" .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/core-os _ CSI未対応 .TE .SS "/usr/xpg4/bin/grep" .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/xopen/xcu4 _ CSI有効 _ インタフェースの安定性確実 _ 標準T{ \fBstandards\fR(5) を参照してください。 T} .TE .SH 関連項目 .sp .LP \fBegrep\fR(1), \fBfgrep\fR(1), \fBsed\fR(1), \fBsh\fR(1), \fBattributes\fR(5), \fBenviron\fR(5), \fBlargefile\fR(5), \fBregex\fR(5), \fBregexp\fR(5), \fBstandards\fR(5) .SH 注意事項 .SS "/usr/bin/grep" .sp .LP 1 行は仮想記憶に使用できるサイズに 制限されています。入力行中に空文字がある場合、\fBgrep\fR は最初の空文字までマッチングを行います。最初の空文字までのマッチングで一致した場合は、行全体が出力されます。 .SS "/usr/xpg4/bin/grep" .sp .LP 入力ファイルが \fBLINE_MAX\fR バイトよりも長い行を含んでいる場合、またはバイナリデータを含んでいる場合の結果は不確定です。\fBLINE_MAX\fR は \fB/usr/include/limits.h\fR で定義されます。