構文 |
|
grep [options] pattern [files...] grep [options] [-e pattern | -f file] [files...]
|
|
オプション(正規表現設定)
-G |
patternを基本正規表で扱う。 |
-E |
patternを拡張正規表現で扱う。 |
-F |
patternを固定文字列で扱う。(正規表現を使わない。) |
オプション(マッチングの設定)
-e pattern |
-e pattern1 -e pattern2 ..... の様に繰り返し指定することにより複数の検索条件を設定できる。 -で始まる文字列をpatternに含める場合も本オプションを使う。 |
-f file |
fileに格納されたpatternを使用する。 |
-i |
大文字と小文字を区別しないで検索する。 |
-v |
マッチしない行を検索結果として扱う。 |
-w |
patternを単語として検索。 |
-x |
行全体を検索対象にする。 |
オプション(出力の設定)
-c |
検索条件にマッチした行数のみ表示する。 -vオプションを同時に指定するとマッチしなかった行数のみ表示する。 |
-l |
-v オプションを同時に指定しない場合、検索条件にマッチする行をを持つファイルファイル名のみ表示する。 |
-q |
検索結果を表示しない。 ファイルが存在しない等のエラーメッセージも表示しない。 |
-s |
ファイルが存在しない等のエラーメッセージを表示しない。 |
オプション(出力行の前に付加する情報)
-b |
出力行の前に、そのファイルの先頭からバイト単位のオフセット数(0バイト始まり)を表示する。 |
-n |
各行の前に行番号(1始まり)を表示する。 |
-h |
各行の前にファイル名を表示しない。 |
オプション(検索結果の前後の行情報設定)
-C num, -num |
検索条件にマッチした行に続く前後num行を同時に検索結果として表示する。 |
-A num |
検索条件にマッチした行の後に続くnum行を同時に検索結果として表示する。 |
-B num |
検索条件にマッチした行に続く前num行を同時に検索結果として表示する。 |
オプション(ファイルやディレクトリの設定)
-I |
バイナリファイルを検索対象外とする。 |
-R,-r |
ディレクトリ配下のファイルを再帰的に検索する。 |
説明 |
|
テキストファイルの文字列を検索する。検索方法として正規表現が使用可能。
|
|
. - 改行文字以外の任意の1文字。 |
* - 直前の1文字の0回以上の繰り返しに一致。直前の文字は正規表現でも構わない。 |
? - 直前の文字が無しまたは1文字存在する事。 注意:基本正規表現では\?を指定する必要がある。 |
+ - 直前の文字が1文字以上連続し存在する事。 注意:基本正規表現では\+を指定する必要がある。 |
{n} - 直前の文字がn文字連続し存在する事。 注意:基本正規表現では\{,\}を指定する必要がある。 |
{n,} - 直前の文字がn文字以上連続し存在する事。 注意:基本正規表現では\{,\}を指定する必要がある。 |
{n,m} - 直前の文字が、n文字~m文字連続し存在する事。 注意:基本正規表現では\{,\}を指定する必要がある。 |
^ - 行の先頭を表す。 |
$ - 行の末尾を表す。 |
[ ] - かっこ内の任意の文字リストの何れかの1文字に一致。 ハイフン(-)で範囲指定もでき、その範囲文字リストの何れかの1文字に一致。 (この範囲指定の範囲はロケールの辞書の順でソートされた順番で文字リストの範囲が決定される為、ロケールにより一致する文字が異なる場合がある。) 先頭^に使用すると^に続く文字リストのいずれにも一致しない1文字に該当するものとなる。 |
[[:cntrl:]] - 制御文字(0x00-1f, 0x7f('DEL'))のいずれかの文字。 |
[[:digit:]] - 数値(0~9)の何れかの1文字に一致。 |
[[:alnum:]] - [[:alpha:]] と [[:digit:]] の何れかの1文字。 |
[[:punct:]] - パンクチュエーション文字(! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~)の何れかの1文字。 |
[[:graph:]] - グラフィカル文字(([:alnum:] と [:punct:]))の何れかの1文字に一致。 |
[[:lower:]] - 小文字アルファベットの何れかの1文字に一致。 |
[[:print:]] - 印字可能な文字([:alnum:] と [:punct:] 、 スペース)の何れかの1文字に一致。 |
[[:space:]] - スペース、タブ、改ページの何れかの1文字に一致。 |
[[:upper:]] - 大文字文字アルファベットの何れかの1文字に一致。 |
[[:alpha:]] - [:lower:]と[:upper:]の何れか1文字に一致。 |
[[:xdigit:]] - 16進文字(0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f)の何れかの1文字に一致。 |
\< - 単語の先頭の空文字列にマッチ。 |
\> - 末尾の空文字列にマッチ。 |
\b - 単語の端の空文字列にマッチ。 |
\B - 単語の端以外にマッチ。 |
\w - [[:alnum:]]と同じ意味。 |
\W - [^[:alnum:]]と同じ意味。 |
pattern1|pattern2 - pattern1またはpattern2のいずれかにマッチ。 |
(pattern) - patternをグループ化する。 |
\ - 正規表現に使われる記号を普通の文字として扱う。 |
$ cat word.txt
あいうえおかきくけこ
あいう,かきく_けこ
あいう、かきく_けこ
あいう?、かきく_けこ
あいう\?、かきく_けこ
== 固定文字、基本正規表現、拡張正規表現をつかった場合 ==
固定文字のpatternの場合: ?は固定文字として扱われる。
$ grep -F 'あいう?' word.txt
あいう?、かきく_けこ
$
固定文字のpatternの場合: \?は固定文字として扱われる。
$grep -F 'あいう\?' word.txt
あいう\?、かきく_けこ
$
基本正規表現のpatternの場合: ?は固定文字として扱われる。
$ grep 'あいう?' word.txt
あいう?、かきく_けこ
$ grep -G 'あいう?' word.txt
あいう?、かきく_けこ
$
基本正規表現のpatternの場合: \?は正規表現として扱われる。
$ grep 'あいう\?' word.txt
あいうえおかきくけこ
あいう,かきく_けこ
あいう、かきく_けこ
あいう?、かきく_けこ
あいう\?、かきく_けこ
$ grep -G 'あいう\?' word.txt
あいうえおかきくけこ
あいう,かきく_けこ
あいう、かきく_けこ
あいう?、かきく_けこ
あいう\?、かきく_けこ
$
拡張正規表現のpatternの場合: ?は正規表現として扱われる。
$ grep -E 'あいう?' word.txt
あいうえおかきくけこ
あいう,かきく_けこ
あいう、かきく_けこ
あいう?、かきく_けこ
あいう\?、かきく_けこ
$
拡張正規表現のpatternの場合: \?は?文字として扱われる。
注意:\?は、
基本正規表現のときは、正規表現として扱われていたが、
拡張正規表現の場合は?文字として扱わている。
$ grep -E 'あいう\?' word.txt
あいう?、かきく_けこ
$