> Linux Reviews > man >

grep


  1. grep.1.man


1. grep.1.man

Manpage of GREP

GREP

Section: User Commands (1)
Updated: 1992 September 10
Index Return to Main Contents
 

名称

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

書式

grep [ -[[AB] ]num ] [ -[CEFGVBchilnsvwx] ] [ -e ] pattern | -ffile ] [ files... ]  

解説

grep は、 files が指定されていればそのファイルから、ファイルが指定されて ないか files の部分に - が指定された場合は、標準入力を読み込み、行毎に、 指定したパターンにマッチする部分を含んでいるかどうか調べ、デフォルト動 作では、マッチした行を表示します。

grep は、次のオプションにより大きく 3 つの動作に分かれます。

-G
パターンとして、基本的な正規表現を扱うモード。デフォルトです。
-E
拡張された正規表現を扱うモードです。ただし、本 grep は、基本の正 規表現と、拡張の正規表現には、表記上の違いはありますが、機能的には差は ありません。
-F
パターンとして改行で区切られた固定の文字列パターンのリストを扱 うモードです。

egrepfgrep は、grep にリンクを張ったもので、実体は grep です。grep を egrep の名前で起動した時の動作は、 grep -E とほぼ同じです。ただし、古い UNIX の egrep との互換のため、完全に同じではあ りません。 grepfgrep の名前で起動した場合は、 grep -F と同じです。

その他のオプションは以下のものがあります。

-num
num で指定した行数だけ、パターンにマッチした行の前後の行もそれぞれ表示します。
-A num
num で指定した行数だけ、パターンにマッチした行の後の行も表示します。
-B num
num で指定した行数だけ、パターンにマッチした行の前の行も表示します。
-C
-2 を指定した事と同じで、パターンにマッチした行の前後 2 行も表示します。
-V
grep のバージョン番号を標準エラー出力に表示します。バグレポート には、この番号を付記してください。
-b
各行の前に、ファイルの先頭からバイト単位のオフセットを表示します。

-n     各行の前に、行番号を表示します。

-c
各行の表示はせず、マッチした行数だけを表示します。 -v オプションと共に指定した場合は、マッチしなかった行数の表示となります。
-e pattern
パターンを指定します。パターンの先頭が、 - で始まっているなど、オプションの指定と混同される可能性がある時に有効です。 通常は、 -e を省略してパターンを記述する事ができます。
-f file
パターンを file から読み込みます。
-h
複数のファイルを指定した場合、デフォルトでは、マッチした行の前 に、ファイル名を付けて表示が行われますが、 -h を指定した場合は、ファイル名を付けないようにします。
-i
パターンマッチにおいて、英大文字と小文字の区別をしないようにします。
-l
通常の表示を抑止し、代わりに、パターンにマッチしたファイルのファ イル名を 1 行ずつ表示します。 -v と共に使用した場合は、マッチしなかったファイル名の表示になります。
-L
通常の表示を抑止し、代わりに、パターンにマッチしなかったファイル名を表示 します。 -lv と同じです。
-q
通常の表示を抑止します。
-s
指定されたファイルが存在しない場合や、読み込みできなかった時、 デフォルトではエラーメッセージを表示しますが、これを抑止します。
-v
指定されたパターンにマッチしない行を対象にします。
-w
パターンマッチを、単語全体で行うようにします。デフォルトの動 作では、指定されたパターンが行の中のどの部分にマッチしてもかまいません が、 -w を指定した場合は、単語単位となります。 単語とは、アルファベット、数字およびア ンダースコアーからなる文字列で、その前後は、空白など、単語を構成しない 文字や、行頭、行末などで区切られたものです。 そして、行の中の各単語について、単語を構成する文字全てがパター ンとマッチするかどうか調べます。
-x
パターンマッチを、行全体で行うようにします。
 

正規表現

grep は、基本的な正規表現と 古い UNIX の egrep に相当する拡張正規表現の 2 種 類の正規表現を扱う事ができます。ただし、本 grep (GNU プロダクトの grep) では、どちらの表現も機能的に違いありません。他のインプリメントでは、基 本正規表現は、拡張正規表現より制限があるようになっていますが、本 grep で は、表記上の違いだけです。ここでは、拡張正規表現について説明し、基本正 規表現との違いはその後に説明します。

正規表現の基本単位は、単一の文字にマッチします。アルファベットや数字な どの多くの文字は、それ自身にマッチします。また、特殊な意味のある文字も、 バックスラッシュ`\'を付ける事で、その本来の文字にマッチするようになり ます。 例えば 0 は 0 にマッチし、 \[ は [ にマッチします。

[] で囲まれた文字のリストは、そのリストの中に含まれる文字のどれか にとマッチすることができます。ただし、リストの先頭に ^ を書いた場合は、そのリストに含まれ ない 文字にマッチします。 例えば、 [0123456789] は数字 1 文字にマッチします。 [^0123456789] は数字以外の 1 文字にマッチします。

2 つの文字の間に `-' を付けることで、前後 2 つの文字の ASCII キャラクタコー ドの間にある文字全体を指定することができます。 例えば、 [0-9] は数字 1 文字にマッチします。 [:クラス名:]で、特定の文字クラスを指定することができます。クラスには、 [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:] があります。 例えば、 [[:alnum:]][0-9A-Za-z] と同じですが、 [:alnum:] で指定した方が ASCII コード順に依存しません。

リストの中では、ほとんどの特殊文字は、通常の文字として扱われます。 また、次の文字も、リストの中の位置によっては、通常の文字として扱われます。

]
リストの先頭にあれば、] にマッチ
^
リストの先頭以外にあれば、^ にマッチ
-
リストの最後にあれば、- にマッチ

例えば、[][] は ] か [ にマッチします。

次の表現は、特殊な意味があります。

.
任意の 1 文字にマッチ
\w
[[:alnum:]] と同じで、アルファベットと数字にマッチ
\W
[^[:alnum:]] と同じで、アルファベットと数字以外にマッチ

^
行の先頭にマッチ
$
行の最後にマッチ
\<
単語の先頭にマッチ
\>
単語の最後にマッチ
\b
単語の端にマッチ
\B
単語の端 以外 にマッチ

次の表現は、他の正規表現を修飾します。拡張正規表現です。

?
他の正規表現の後に指定し、0 回か 1 回マッチさせます。マッチしない場 合も一致とします。
*
他の正規表現の後に指定し、0 回以上マッチさせます。マッチしない場合も 一致とします。
+
他の正規表現の後に指定し、その正規表現を 1 回以上マッチさせます。 なお、少なくとも 1 回はマッチしなくてはいけません。
{n}
他の正規表現の後に指定し、厳密に n 回マッチさせます。
{n,}
他の正規表現の後に指定し、 n 回以上マッチさせます。
{,m}
他の正規表現の後に指定し、 m 回以下でマッチさせます。
{n,m}
他の正規表現の後に指定し、 n 回以上 m 回以下でマッチさせます。
|
2 つの正規表現の間に指定し、どちらか一方がマッチすれば一致とします。
()
括弧でくくった正規表現をひとまとまりでマッチさせます。繰り返しなどの 修飾は、このまとまりに対しての指定になります。
\n
括弧で括った正規表現のまとまりは、出て来た順番に番号が振られており、 そのうちの n 番目のものを繰り返します。 例えば、taro|hanako は `taro' か `hanako' にマッチします。 `su(momo)mo\1mo\1nouti' は `sumomomomomomomomonouti' にマッチします

基本正規表現では、 ?, +, {, |, (, ) は、正規表現としての特殊な意味は 持たず、その文字本来のパターンにマッチします。代わりに、 \?, \+, \{, \|, \(, \) を使う事で、拡張正規表現と同じ機能を持ちまます。

egrep として起動した場合、 { は、正規表現としての特殊な意味は持ちません。  

戻り値

パターンにマッチした行が見つかった場合は、0 を、見つからなかった場合は、1 を 返します。ただし、 -v オプションが指定された場合は、逆になります。パターンの指定の仕方が間違って いたり、ファイルがアクセスできないなどのエラーがおきた場合は、2 を返します。  

バグ

バグレポートは、 bug-gnu-utils@prep.ai.mit.edu まで Email してください。この時、``Subject:'' のどこにでもいいですから ``grep'' という単語を 忘れずに入れてください。


 

Index

名称
書式
解説
正規表現
戻り値
バグ

This document was created by man2html using the manual pages.
Time: 17:38:27 GMT, October 23, 2013

SVENSKA - cs - SVENSKA - SVENSKA - SVENSKA - nl - pl