Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all bug

名前

       grep, egrep, fgrep - パターンにマッチする行を表示する

書式

       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

説明

       grepFILE で名前を指定されたファイルを検索して、与えられた PATTERN にマッチする部分を含
       む行を探します。 ファイルが指定されていない場合や、 ファイル名の代わりに 1  個のマイナス記
       号  “-”  が指定されている場合は、 grep は標準入力から検索します。 デフォルトでは、 grep は
       マッチした行を表示します。

       さらに、兄弟プログラム egrepfgrep は、それぞれ grep -Egrep -F と同じです。  これら
       の兄弟プログラムは非推奨ですが、後方互換性のために用意されています。

オプション

   プログラムについての一般情報
       --help 使用法を出力して終了します。

       -V, --version
              grep のバージョン番号を出力して終了します。

   正規表現の選択
       -E, --extended-regexp
              PATTERN を拡張正規表現 (ERE) として扱います (下記参照)。

       -F, --fixed-strings
              PATTERN を改行で区切られた固定文字列 (正規表現のかわりに) のリストとして扱い、 その
              文字列のいずれかとマッチするかどうかを調べます。

       -G, --basic-regexp
              PATTERN を基本正規表現 (BRE) として扱います (下記参照)。これがデフォルトです。

       -P, --perl-regexp
              パターンを Perl 互換の正規表現 (PCRE) として扱います。 きわめて実験的なものなので、
              grep -P を使うと、その機能は実装されていませんという 警告が出るかもしれません。

   マッチングの制御
       -e PATTERN, --regexp=PATTERN
              PATTERN    をパターンとして指定します。   このオプションを複数回使ったときや、   -f
              (--file)   オプションと組み合わせたときは、与えられたすべてのパターンを検索します。
              このオプションは、ハイフン  “-” で始まるパターンを保護するのにも使えます。

       -f FILE, --file=FILE
              パターンを FILE から 1 行 1 パターンとして読み込みます。 このオプションを複数回使っ
              たときや、 -e (--regexp) オプションと組み合わせたときは、与えられたすべてのパターン
              を検索します。 空のファイルはパターンを含まないので、何にもマッチしません。

       -i, --ignore-case
              PATTERN と入力ファイルの双方で、アルファベットの大文字と小文字を 区別しないようにし
              ます。

       -v, --invert-match
              マッチの意味を逆にして、マッチしない行を抜き出して表示します。

       -w, --word-regexp
              マッチする部分が完全な単語を形成するときにのみ、その行を選択します。 次の条件を検査
              します。パターンにマッチする部分文字列は、行頭にあるか、 さもなければ、単語構成文字
              以外の文字の直後になければならない。 また、その部分文字列は、行末にあるか、さもなけ
              れば、単語構成文字以外の文字の 直前になければならない (訳注: ここで「完全な単語を形
              成する」というのは、 それが空白、改行、引用符、句読点などで前後を区切られた文字列だ
              ということです。たとえば、文字列「A  word with you」中の word という 部分文字列は完
              全な単語ですが、文字列「two words」中の部分文字列  word  は  完全な単語を形成しませ
              ん)。  単語構成文字とは、アルファベット、数字、アンダスコアです (訳注: 実は漢字や仮
              名も単語構成文字として扱われます)。 このオプションは、 -x  が同時に指定されたときに
              は無効になります。

       -x, --line-regexp
              パターンが行全体とぴったりマッチしたときにのみ、その行を選択します。 正規表現でいう
              と、これはパターンを括弧で囲み、前後に ^$ を付けるようなものです。

       -y     -i と同じ意味を持つ旧式のオプションです。

   一般的な出力の制御
       -c, --count
              通常の出力はせず、各入力ファイルについてマッチした行数を表示します。 -v,  --invert-
              match  オプション  (上記参照) と共に指定した場合は、 マッチしなかった行数を表示しま
              す。

       --color[=WHEN], --colour[=WHEN]
              マッチした (空文字列ではない) 文字列、マッチする行、前後の文脈行、 ファイル名、行番
              号、バイトオフセット、(フィールドや、前後の文脈行を含む  グループ同士の) 区切り記号
              をエスケープ・シーケンスで囲み、ターミナル上に 色付きで表示します。  どの色を使うか
              は、環境変数 GREP_COLORS で定義します。非推奨の環境変数 GREP_COLOR も、これまでどお
              り使用できますが、その設定は優先されません。 WHENnever, always, auto のいづれか
              です。

       -L, --files-without-match
              通常の出力はしません。その代わりに、  grep を普通に実行した際に、何の検索結果も表示
              しないような入力ファイルの名前を 列挙します (訳注: すなわち、-L  オプションを指定す
              ると、 -v オプションを同時に指定しない場合は、パターンにマッチする 文字列を含む行が
              まったく存在しないファイルの名前を列挙するということです)。  個々のファイルに対する
              走査は、最初のマッチで終了します。

       -l, --files-with-matches
              通常の出力はしません。その代わりに、  grep を普通に実行した際に、何らかの検索結果を
              表示するような入力ファイルの名前を 列挙します (訳注: すなわち、-l  オプションを指定
              すると、 -v オプションを同時に指定しない場合は、パターンにマッチする 文字列を含む行
              が存在するファイルの名前を列挙するということです)。      個々のファイルに対する走査
              は、最初のマッチで終了します。

       -m NUM, --max-count=NUM
              マッチした行数が  NUM に達したら、ファイルの読み込みを中止します。 入力が通常ファイ
              ルから標準入力を介して行われている場合は、マッチした行を   NUM   行出力した時点で、
              grep  は標準入力の読み出し位置を最後にマッチした行の直後に来るようにしてから、 終了
              します。続いて表示する文脈行がある場合でも、この動作は変わりません。   このことは、
              grep   を呼び出すプロセスが、中止したところから検索を  再開することを可能にします。
              grep はマッチした行数が NUM  に達してストップしたとき、それに続く文脈行があれば、そ
              れを出力します。  -c--count オプションを同時に使用した場合、 grepNUM よりも
              大きい数を出力しません。 -v--invert-match  を同時に使用した場合は、マッチしない
              行を NUM 行出力したところで、 grep はストップします。

       -o, --only-matching
              マッチする行のマッチした部分だけを (それが空文字列でなければ) 表示します。 マッチし
              た各文字列は、それぞれ別の行に書き出します。

       -q, --quiet, --silent
              沈黙モードです。標準出力に何も書き出しません。  マッチするものが  1  つでも見つかる
              と、エラーを検出していた場合でも、  終了ステータス  0  で即座に終了します。  -s--no-messages オプションも参照してください。

       -s, --no-messages
              ファイルが存在しないことや読み込みめないことを示す エラーメッセージを抑止します。

   出力する行の前に付ける情報の制御
       -b, --byte-offset
              出力する各行の前に、その入力ファイル内での 0 から始まる  バイト単位のオフセットを表
              示します。  -o (--only-matching) も指定されているときは、マッチする部分そのもののオ
              フセットを示します。

       -H, --with-filename
              各々のマッチに対してそのファイル名を表示します。 検索するファイルが 2  個以上の場合
              は、これがデフォルトの動作です。

       -h, --no-filename
              出力する行の前にファイル名を付けないようにします。  検索するファイルが 1 つしかない
              (あるいは、標準入力だけだった) 場合は、 これがデフォルトの動作です。

       --label=LABEL
              実際には標準入力から来た入力を  LABEL  というファイルから来たもののように見せかけま
              す。  これは  zgrep  のようなツールを自分で作成する際にとりわけ便利です。たとえば、
              gzip -cd foo.gz | grep --label=foo -H something といった具合です。 -H  オプションも
              参照してください。

       -n, --line-number
              各出力行の前に、その入力ファイル内での 1 から始まる行番号を表示します。

       -T, --initial-tab
              行の実際の内容をなす最初の文字が、必ずタブ・ストップの位置に 来るようにします。その
              結果、タブがきちんと揃って見えるようになります。 このオプションは  -H,-n,-b  といっ
              た、実際の内容の前に情報を付加するオプションを使うときに  役に立ちます。 また、この
              オプションは、 1 つのファイルから抜き出した行の先頭ができるだけ揃うように、  行番号
              やバイトオフセットがある場合は、そのフィールド幅を   必要最小のサイズにして表示しま
              す。

       -u, --unix-byte-offsets
              Unix 形式のバイトオフセットを報告します。 このスイッチを使うと、 grep  は、検索対象
              のファイルが Unix 形式のテキストファイルであるかのように、 バイトオフセットを報告し
              ます。すなわち、CR 文字を切り捨てるのです。 そのため、表示される結果は、Unix マシン
              で grep を実行したときと同じものになります。 このオプションは、 -b オプションを同時
              に使用しないかぎり、効果がありません。 また、このオプションは、MS-DOS と MS-Windows
              以外の プラットホームでは、何の効果もありません。

       -Z, --null
              ファイル名に続いて通常出力される文字の代わりに、  値が  0 の 1 バイト (ASCII NUL 文
              字) を出力します。 たとえば、 grep -lZ は、いつもの改行 (newline) ではなく、値が  0
              の 1 バイトを各ファイル名の後ろに 出力するのです。 このオプションは、改行のような変
              わった文字を含むファイル名があるときでも、 出力の曖昧さをなくしてくれます。  このオ
              プションを  find -print0, perl -0, sort -z, xargs -0 などのコマンドと組み合わせて使
              うと、行儀の悪いファイル名も 処理することができます。  ファイル名が改行文字を含んで
              いても処理できるのです。

   前後の文脈行の制御
       -A NUM, --after-context=NUM
              NUM で指定した行数だけ、パターンにマッチした行の後に続く文脈も表示します。 マッチし
              た行を含むグループ同士の間には、グループを区切る印 (--)  からなる行を置きます。  -o--only-matching と同時に使うと、このオプションは効果がなく、警告メッセージを出し
              ます。

       -B NUM, --before-context=NUM
              NUM で指定した行数だけ、パターンにマッチした行に先行する文脈も表示します。 マッチし
              た行を含むグループ同士の間には、グループを区切る印  (--)  からなる行を置きます。 -o--only-matching と同時に使うと、このオプションは効果がなく、警告メッセージを出し
              ます。

       -C NUM, -NUM, --context=NUM
              NUM で指定した行数だけ、パターンにマッチした行の前後の文脈も表示します。 マッチした
              行を含むグループ同士の間には、グループを区切る印 (--) からなる行を置きます。 -o--only-matching  と同時に使うと、このオプションは効果がなく、警告メッセージを出しま
              す。

   ファイルやディレクトリの選択
       -a, --text
              バイナリファイルをテキストファイルであるかのように処理します。   これは   --binary-
              files=text オプションと等価です。

       --binary-files=TYPE
              ファイルのデータやメタデータが、 ファイルにバイナリデータが含まれていることを示す場
              合に、 ファイルのタイプを  TYPE  だと見なします。  テキストではないバイトが見つかれ
              ば、バイナリデータです。  テキストではないバイトが、 現在使用しているロケールに不適
              切にエンコードして出力されたバイトや、 -z  オプションが指定されていないときの入力中
              のヌルバイトだということもあります。

              デフォルトでは TYPEbinary であり、 grep はファイルがバイナリだとわかると、 その
              先の出力を抑制します。そのかわりにバイナリファイルにマッチしたという 1 行のメッセー
              ジを表示します。マッチする部分がない場合には何も表示しません。

              TYPEwithout-match の場合、 grep はファイルがバイナリだとわかると、残りはマッチ
              しないものと仮定します。 これは -I オプションと等価です。

              TYPEtext の場合、  grep  はバイナリファイルをテキストであるかのように扱います。
              これは -a オプションと等価です。

              typebinary の場合、 grep-z がなくてもテキスト以外の文字を行の区切りとして扱
              う場合があります。 これは、 binary を選ぶか text を選ぶかによって、  パターンがファ
              イルにマッチするかどうかに影響があることを意味します。 たとえば、 typebinary の
              場合は q$ というパターンが q の直後に NULL 文字が続く箇所にマッチする可能性があるの
              に対し、  typetext の場合にはマッチしません。 逆に、 typebinary の場合、 .
              (period) というパターンは NULL 文字にはマッチしないかもしれません。

              警告:  -a   オプションはバイナリのゴミを出力するかもしれません。   出力先が端末であ
              り、しかも  端末ドライバがゴミの一部をコマンドだと解釈する場合には、 このゴミが厄介
              な副作用を起こす可能性があります。 一方、テキストのエンコーディングが不明なファイル
              を読み込むとき、   マッチした結果をそのまま表示するのが安全でなくても、  より多くの
              マッチを探すために、 -a を指定するか、環境変数で LC_ALL='C'  を指定するのが役に立つ
              場合があります。

       -D ACTION, --devices=ACTION
              入力ファイルがデバイス、FIFO、ソケットのいづれかである場合に、  ACTION を使ってその
              処理を行います。 デフォルトの ACTIONread です。すなわち、デバイスなどを、それが
              普通のファイルであるかのように、 読み込みます。 ACTIONskip ならば、デバイスなど
              を黙ってスキップします。

       -d ACTION, --directories=ACTION
              入力ファイルがディレクトリの場合に、 ACTION  を使ってその処理を行います。デフォルト
              の  ACTIONread です。すなわち、ディレクトリを、それが普通のファイルであるかのよ
              うに、 読み込みます。 ACTIONskip  ならば、ディレクトリを黙ってスキップします。
              ACTIONrecurse なら、 grep は各ディレクトリの下にあるすべてのファイルを再帰的に
              読み込みます。 ただし、シンボリックリンクはコマンドラインで指定されたときにのみたど
              ります。 これは -r オプションと等価です。

       --exclude=GLOB
              コマンドラインで指定されているファイルについては、  その名前の尾部が、 ワイルドカー
              ドによるマッチングでパターン GLOB にマッチするファイルをスキップします。 ここで言う
              「名前の尾部」とは、 ファイル名の全体か、 / の直後に始まり / 以外の文字で終るファイ
              ル名の最後の部分のことです。 また、ディレクトリを再帰検索しているときに出会うファイ
              ルについては、  ベースネームが  GLOB  にマッチするファイルをスキップします。 ベース
              ネームとは最後の / より後の部分です。 パターンには、 *, ?, [...]   がワイルドカード
              として使えます。  \ を文字の前に置けば、 ワイルドカード文字やバックスラッシュ文字を
              本来の意味で使用できます。

       --exclude-from=FILE
              ファイル FILE を読み込み、そこに書かれているファイル名 (ワイルドカード可)  のどれか
              に ベースネームがマッチするファイルをスキップします (--exclude の項で説明したワイル
              ドカードのマッチングを使用します)。

       --exclude-dir=GLOB
              コマンドラインで指定されているディレクトリのうち、 名前の尾部がパターン GLOB にマッ
              チするディレクトリをスキップします。 また、ディレクトリを再帰検索しているときに出会
              うサブディレクトリについては、 ベースネームが GLOB にマッチするサブディレクトリをス
              キップします。 GLOB 末尾の余分なスラッシュは無視されます。

       -I     バイナリファイルをマッチするデータを含んでいないものとして       処理します。これは
              --binary-files=without-match オプションと等価です。

       --include=GLOB
              ベースネームが GLOB にマッチするファイルのみを検索します (--exclude  の項で説明した
              ワイルドカードのマッチングを使用します)。

       -r, --recursive
              各ディレクトリの下にあるすべてのファイルを再帰的に読み込みます。 ただし、シンボリッ
              クリンクはコマンドラインで指定されたときにのみたどります。 検索対象のファイルが指定
              されなかった場合には grep は現在のディレクトリを探すことに注意してください。 これは
              -d recurse オプションと等価です。

       -R, --dereference-recursive
              各ディレクトリの下にあるすべてのファイルを再帰的に読み込みます。 -r  と異なり、すべ
              てのシンボリックリンクを追跡します。

   その他のオプション
       --line-buffered
              行ごとに出力を行います。 実行速度が落ちるかもしれません。

       -U, --binary
              ファイルをバイナリとして扱います。  MS-DOS や MS-Windows の環境下で、 grep はデフォ
              ルトでは、 ファイルがテキストかバイナリかを --binary-files オプションで記述された方
              法で推測します。  grep はファイルをテキストファイルと判断した場合、オリジナルのファ
              イル内容から (^$  を使った正規表現が正しく動作するように)  CR  文字を取り除きま
              す。 -U を指定すると、この推測を抑制し、すべてのファイルを読み取って、 そのまま手を
              加えずにマッチ処理へ渡すのです。もしファイルが 各行の末尾に CR/LF  の組み合わせを持
              つテキストファイルなら、 このオプションのせいで正規表現がうまく働かないことがあるか
              もしれません。 このオプションは MS-DOS や MS-Windows 以外のプラットフォームでは  効
              果がありません。

       -z, --null-data
              入力と出力のデータを、  改行のかわりに、 値が 0 のバイト (ASCII NULL 文字) で区切ら
              れた一連の行として扱います。 -Z--null と同様、このオプションは sort -z などのコ
              マンドと組み合わせて、 行儀の悪いファイル名の処理に使用することができます。

正規表現

       正規表現とは、一群の文字列を一まとめにして表現するパターンのことです。  正規表現の構成方法
       は、数式によく似ています。すなわち、さまざまな演算子を  使い、小さな表現を組み合わせて構成
       するのです。

       grep は、「基本」正規表現 (BRE)、「拡張」正規表現 (ERE)、「Perl の」正規表現 (PCRE) という
       3  種類の正規表現文法を扱うことができます。  GNU grep   では、「基本」と「拡張」の文法の間
       で、利用できる機能に違いはありません。  他の実装では、基本正規表現は拡張正規表現ほど強力で
       はないものです。 ここでは、拡張正規表現について説明し、 基本正規表現との相違については、後
       で簡単にまとめることにします。     なお、Perl     互換の正規表現にはより多くの機能があり、
       pcresyntax(3) や pcrepattern(3) で詳細に解説されていますが、 PCRE が用意されているシステム
       でしか利用できません。

       正規表現を構成する基本単位は、1  文字にマッチする正規表現です。 アルファベットや数字を含む
       ほとんどの文字が、自分自身にマッチする正規表現です。  また、特殊な意味を持つメタ文字も、そ
       の文字の前にバックスラッシュ を付けると、その本来の文字にマッチするようになります。

       ピリオド . は、任意の 1 文字にマッチします。

   文字クラスと角括弧式 (ブラケット式)
       角括弧式  とは、 [] で囲まれた文字のリストのことです。 角括弧式 は、リスト中の任意の 1
       文字にマッチします。 また、リストの最初の文字がキャレット ^ の場合は、リスト中の文字以外の
       任意の  1 文字にマッチします。 たとえば、正規表現 [0123456789] は任意の数字 1 個にマッチす
       るわけです。

       角括弧式の内側に 範囲式 を置くことができますが、これはハイフンで区切られた 2  つの文字から
       なっています。範囲式は、現在使用中のロケールにおける照合順序と  文字集合を使ったときに、そ
       の 2 文字の間に並ぶ、その 2 文字を含む 任意の 1 文字にマッチします。  たとえば、デフォルト
       の  C ロケールでは、 [a-d][abcd] と等価です。 多くのロケールでは文字を辞書式の順序で並
       べていますが、そうしたロケールで [a-d][abcd]  と等価でないこともよくあります。  たとえ
       ば、  [aBbCcDd] と等価かもしれないのです。 角括弧式を伝統的な意味に解釈させたいなら、 環境
       変数 LC_ALL の値を C に設定して、C ロケールを使用するとよいでしょう。

       最後に、角括弧式内で使えるように、特定の名前を持つ文字クラスが    あらかじめ定義されていま
       す。  名前が内容を示しており、それは次のようなものです。  [:alnum:], [:alpha:], [:cntrl:],
       [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:],  [:xdigit:]。
       たとえば、  [[:alnum:]] は 現在のロケールの文字クラスで数字と文字を意味します。 C ロケール
       や ASCII 文字集合のエンコーディングの場合、 これは [0-9A-Za-z] と同じです。  (こうしたクラ
       ス名に使用されている角括弧は、シンボル名の一部なので、  角括弧式の前後に付く角括弧とは別に
       指定する必要があることに 注意してください。)  角括弧式の内側では、ほとんどのメタ文字がその
       特別な意味を  持たなくなります。 ] という記号そのものを角括弧式に含めるには、 それをリスト
       の先頭に置いてください。 同様に、 ^ という記号そのものを含めるには、  それを先頭以外のどこ
       かに置けばよいでしょう。 最後に、 - そのものを含めるには、 それをリストの最後に置きます。

   行頭と行末 (アンカリング)
       キャレット ^ と ドル記号 $ は、それぞれ行頭と行末の空文字列にマッチするメタ文字です。

   バックスラッシュ付きの特別な表現
       シンボル \< とシンボル \> は、それぞれ単語の先頭と末尾の空文字列にマッチするメタ文字です。
       シンボル \b は単語の端の空文字列にマッチします。 シンボル \B は単語の端 以外  の空文字列に
       マッチします。  シンボル  \w[_[:alnum:]] と同じ意味で、 シンボル \W[^_[:alnum:]].
       と同じ意味です。

   繰り返し
       正規表現の後には、繰り返し演算子のどれかが続くことがあります。
       ?      直前の項目があってもなくてもよく、マッチするとしても 1 回だけということ。
       *      直前の項目が 0 回以上マッチするということ。
       +      直前の項目が 1 回以上マッチするということ。
       {n}    直前の項目がちょうど n 回マッチするということ。
       {n,}   直前の項目が n 回以上マッチするということ。
       {,m}   直前の項目が m 回以下マッチするということ。 これは GNU 拡張です。
       {n,m}  直前の項目が n 回以上 m 回以下マッチするということ。

   結合
       2 つの正規表現は結合することができます。 結果としてできあがる正規表現は、 結合対象となる部
       分表現にそれぞれマッチする  2 つの部分文字列を結合して作られる、どんな文字列にもマッチしま
       す。

   選択
       2 つの正規表現は中置き型演算子の | で繋ぐことができます。 結果としてできあがる正規表現は、
       どちらかの部分表現にマッチするどんな文字列にもマッチします。

   優先順位
       繰り返しは結合に優先します。また結合は選択に優先します。 表現の 1 つのまとまりを括弧でくく
       ると、その内側の式をこうした優先規則より さらに優先させることができます。 括弧でくくった部
       分は、1 つの部分表現になるのです。

   後方参照と部分表現
       n  が 1 個の数字であるような 後方参照 \n は、正規表現中の括弧で囲まれた n 番目の部分表現が
       前もってマッチした文字列とマッチします。

   基本正規表現と拡張正規表現
       基本正規表現では、メタ文字 ?, +, {, |, (, ) は、その特殊な意味を失います。バックスラッシュ
       を付けた \?, \+, \{, \|, \(, \) を代わりに使用してください。

環境変数

       grep の動作は、 以下に挙げる環境変数の影響を受けます。

       LC_foo カテゴリのロケールは、 LC_ALL, LC_foo, LANG という 3 つの環境変数をこの順番で調べる
       ことで決まります。 この 3 つの環境変数のうち、設定されている最初のものが、 LC_foo のロケー
       ルを決めるのです。  たとえば、 LC_ALL が設定されていず、 LC_MESSAGESpt_BR に設定されて
       いるとしましょう。 そのときは、ブラジルのポルトガル語というロケールが LC_MESSAGES カテゴリ
       に使用されるわけです。 こうした環境変数がまったく設定されていなかったり、ロケールの カタロ
       グがインストールされていなかったり、 grep が各国語サポート (NLS)  を有効にしてコンパイルさ
       れていなかったり  した場合は、C ロケールが使用されます。 シェルの locale -a コマンドによっ
       て現在利用できるロケールが一覧できます。

       GREP_OPTIONS
              この変数ではデフォルトのオプションを指定します。そうしたオプションは コマンドライン
              で明示的に指定するオプションの前に置かれます。 これが移植性の高いスクリプトを書くと
              きに問題となるため、 この機能は grep の将来のリリースで削除されることになっており、
              使用すると  grep  が警告を表示します。 かわりにエイリアスやスクリプトを使ってくださ
              い。

       GREP_COLOR
              この変数は、パターンにマッチした (空文字列ではない) テキストを強調するために 使用す
              る色彩を指定します。 GREP_COLORS 変数を使用する方が望ましく、この変数は非推奨なので
              すが、今でも 使えないことはありません。 GREP_COLORS 変数の mt, ms, mc  機能を使用し
              ている場合は、この変数による指定より、そちらのほうが  優先されます。 この変数によっ
              て指定できるのは、マッチする空文字列ではないテキストを 強調するために、マッチする行
              ならどこでも使用する色彩だけなのです  (マッチする行は、コマンドラインオプション  -v
              を指定しなかったときは、選択される行になり、 -v  を指定したときは、前後の文脈行にな
              ります)。 この変数のデフォルトの値は 01;31 ですが、それはターミナルのデフォルトの背
              景色に赤い前景色の太字で テキストを表示するということです。

       GREP_COLORS
              この変数は、出力のさまざまな部分を強調するために使用する、 色彩などの属性を指定しま
              す。       この変数の値はコロンで区切った機能のリストであり、      デフォルトでは、
              ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 になっていて、 rvne  という真
              偽値を取る機能は設定してありません  (すなわち、false になっています)。 使用できる機
              能は、以下のとおりです。

              sl=    選択される行全体に適用される SGR パラメータ  (選択される行とは、コマンドライ
                     ンで -v オプションを指定しなかったときは、マッチする行、 -v オプションを指定
                     したときは、マッチしない行のことです)。 ただし、値に真偽値を取る rv 機能とコ
                     マンドライン・オプションの -v の両方を指定したときは、前後の文脈行扱いになる
                     マッチする行に 適用されます。 デフォルトは空です (すなわち、端末のデフォルト
                     の背景色と 前景色の組み合わせ)。

              cx=    前後の文脈行全体に適用される  SGR パラメータ (前後の文脈行とは、コマンドライ
                     ンで -v オプションを指定しなかったときは、マッチしない行、 -v オプションを指
                     定したときは、マッチする行のことです)。 ただし、値に真偽値を取る rv 機能とコ
                     マンドライン・オプションの -v の両方を指定したときは、選択されるマッチしない
                     行に 適用されます。 デフォルトは空です (すなわち、端末のデフォルトの背景色と
                     前景色の組み合わせ)。

              rv     コマンドラインで -v が指定されているときに、 sl=cx= 機能の意味を逆にする
                     (入れ替える) 真偽値。 デフォルトは空です (すなわち、この機能は指定されていま
                     せん)。

              mt=01;31
                     マッチする行ならどこでも、空文字列ではないマッチするテキストに適用される SGR
                     パラメータ (マッチする行は、コマンドラインで -v オプションを指定しなかったと
                     きは、選択される行になり、 -v を指定したときは、前後の文脈行になります)。 こ
                     の機能を設定するのは、 ms=mc= を同時に同じ値に設定するのと同じことです。
                     デフォルトは、カレント行の背景色に赤い前景色の太字になっています。

              ms=01;31
                     選択される行中の空文字列ではないマッチするテキストに適用される SGR  パラメー
                     タ (この機能が使用されるのは、コマンドラインで -v オプションを指定しないとき
                     だけです)。 sl= 機能 (rv が設定されているときは、 cx= 機能) の効果は、この機
                     能を使用しても、相変わらず有効です。  デフォルトは、カレント行の背景色に赤い
                     前景色の太字になっています。

              mc=01;31
                     前後の文脈行中の空文字列ではないマッチするテキストに適用される SGR  パラメー
                     タ (この機能が使用されるのは、コマンドラインで -v オプションが指定されている
                     ときだけです)。 cx= 機能 (rv が設定されているときは、 sl= 機能) の効果は、こ
                     の機能を使用しても、相変わらず有効です。  デフォルトは、カレント行の背景色に
                     赤い前景色の太字になっています。

              fn=35  表示される行の前にファイル名が付くとき、それに適用される SGR パラメータ。 デ
                     フォルトは、端末のデフォルトの背景色にマゼンタの前景色の文字です。

              ln=32  表示される行の前に行番号が付くとき、それに適用される SGR パラメータ。 デフォ
                     ルトは、端末のデフォルトの背景色に緑の前景色の文字です。

              bn=32  表示される行の前にバイトオフセットが付くとき、それに適用される SGR  パラメー
                     タ。 デフォルトは、端末のデフォルトの背景色に緑の前景色の文字です。

              se=36  区切り記号に適用される  SGR  パラメータ。 区切り記号としては、選択される行の
                     フィールド間には ':' を置き、  前後の文脈行のフィールド間には  '-'  を置きま
                     す。  前後の文脈行の表示が指定されているときは、隣接行グループの間に '--' を
                     挿入します。  デフォルトは、端末のデフォルトの背景色にシアンの前景色の記号で
                     す。

              ne     真偽値です。通常、色付けされた項目が終わるたびに、    エスケープ・シーケンス
                     Erase in Line (EL) to Right (\33[K) を使用して、行末まで消去しますが、 ne を
                     設定すると、それをやらなくなります。  これは、端末が EL をサポートしていない
                     場合に必要です。 そのほか、 真偽値を取る  terminfo  の機能  back_color_erase
                     (bce) を使用していない端末で、採用した強調色が背景に作用しない場合や、 EL が
                     遅すぎたり、画面にひどいチラつきを引き起こしたりする場合にも、  これの設定が
                     役に立ちます。 デフォルトは false です (すなわち、この機能は設定されていませ
                     ん)。

              真偽値を取る機能には =..   の部分がないことに注意してください。そうした機能はデフォ
              ルトでは 設定されていず (すなわち、false)、設定されたとき true になります。

              使用しているテキスト端末の文書にある Select Graphic Rendition (SGR) の セクションを
              見て、使用できる値や、それが文字属性として使われたときの意味を 調べてください。 SGR
              パラメータの値は十進法の整数であり、セミコロンで結合することができます。  grep はそ
              うしたセミコロンで結合された数字から完全な SGR シーケンス (\33[...m) を構成します。
              結合される値でよく使われるものを挙げると、  1 は太字、 4 は下線、 5 は点滅、 7 は反
              転です。 39 はデフォルトの前景色、 30 から 37 は前景色、 90 から 97 は 16  色モード
              の前景色、 38;5;0 から 38;5;255 は 88 色と 256 色モードの前景色に使われます。また、
              49 はデフォルトの背景色であり、 40 から 47 は背景色、 100 から 107 は 16 色モードの
              背景色、 48;5;0 から 48;5;255 は 88 色と 256 色モードの背景色です。

       LC_ALL, LC_COLLATE, LANG
              こうした変数は LC_COLLATE カテゴリのロケールを指定します。 LC_COLLATE[a-z] のよ
              うな範囲式を解釈するときの照合順序を決めるものです。

       LC_ALL, LC_CTYPE, LANG
              こうした変数は  LC_CTYPE  カテゴリのロケールを指定します。  LC_CTYPE   は文字のタイ
              プ、たとえば、空白 (whitespace) に当たるのは どの文字とどの文字か、といったことを決
              めるものです。 このカテゴリーは、文字のエンコーディングも決定します。  つまり、テキ
              ストのエンコーディングが  UTF-8 か、ASCII か、 それ以外のエンコーディングかというこ
              とです。 ロケールが C か POSIX の場合は、 すべての文字が 1 バイトとしてエンコードさ
              れ、 すべてのバイトが有効な文字となります。

       LC_ALL, LC_MESSAGES, LANG
              こうした変数は  LC_MESSAGES カテゴリのロケールを指定します。 LC_MESSAGESgrep が
              メッセージに使う言語を決めるものです。 デフォルトの C  ロケールでは、アメリカ英語の
              メッセージが使用されます。

       POSIXLY_CORRECT
              これが設定されていると、  grep は POSIX が要求するとおりの動作をします。 設定されて
              いない場合の動作は、ほかの GNU  のプログラムに  より近いものです。  POSIX  の規定で
              は、ファイル名の後にオプションが現れた場合、 それをファイル名として扱わなければなら
              ないことになっています。 これに対して、 grep のデフォルトでは、そうしたオプションを
              引き数リストの前の方に移動して、  オプションとして扱います。  また、POSIX  の規定で
              は、理解できないオプションは “illegal” (違法) と判断するようになっていますが、 そう
              したオプションも法律に違反しているわけではないので、       grep      のデフォルトで
              は、“invalid” (無効) という判断を下します。

終了ステータス

       通常では、選択される行が見つかったときの終了ステータスは 0 であり、 見つからなかったときは
       1  であり、エラーが起きた場合は 2 です。 ただし、 -q , --quiet , --silent といったオプショ
       ンが使われていて、選択される行が見つかったときは、  エラーが起きたときでも終了ステータスは
       0 です。

著作権

       Copyright 1998-2000, 2002, 2005-2016 Free Software Foundation, Inc.

       This  is  free software; see the source for copying conditions.  There is NO warranty; not
       even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

バグ

   バグの報告
       バグ報告は バグ報告アドレス ⟨bug-grep@gnu.org⟩ 宛に E メールで送ってください。 メールアー
       カイブ ⟨http://lists.gnu.org/mailman/listinfo/bug-grep⟩ と バグトラッカー ⟨http://
       debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩ も用意されています。

   既知のバク
       {n,m} を使って何度も繰り返しを行うと、  grep  は大量のメモリを消費するかもしれません。  ま
       た、ほかの曖昧な正規表現にも、指数関数的な時間と  メモリ空間を要するものがあり、 grep がメ
       モリ不足を起こすことがあります。

       後方参照は非常に遅く、とんでもなく時間がかかることがあります。

関連項目

   標準のマニュアルページ
       awk(1), cmp(1), diff(1), find(1), gzip(1), perl(1), sed(1), sort(1),  xargs(1),  zgrep(1),
       read(2), pcre(3), pcresyntax(3), pcrepattern(3), terminfo(5), glob(7), regex(7).

   POSIX プログラマーズ・マニュアルページ
       grep(1p).

   完全版の文書
       完全版のマニュアル ⟨http://www.gnu.org/software/grep/manual/⟩ が用意されています。 infogrep プログラムが御使用のサイトにきちんとインストールされているならば、

              info grep

       とコマンドを打ち込むことで、完備したマニュアルが読めるはずです。

注記

       このマニュアルは断続的にメンテナンスされるため、  完全版の文書のほうが最新であることがよく
       あります。

訳者謝辞

       この翻訳は、FreeBSD   jpman  Project  <http://www.jp.freebsd.org/man-jp/>  から  Linux  JM
       project に寄贈していただいたマニュアルを元にし、 GNU grep の新しいマニュアルに合わせて、増
       補・改訂しています。  この場を借りて、FreeBSD jpman Project の翻訳者の方々にお礼を申し上げ
       ます。