Linux - ファイル中の文字列を検索する。

ファイル中の文字列を検索する
構文 : grep (オプション) [ファイル名]

ファイル中の文字列を検索する。検索パターンとして表2のような正規表現を使用できる。

使用例を以下に示します。

$ grep "/usr/bin" *.cfg	← 拡張子がcfgのファイルから"/usr/bin"を検索。
$ ps aux | grep "httpd"	← httpdのプロセス情報を表示。
$ grep -ci "test" sample.txt	← "test"のある行数を表示。
表1 grepの主なオプション
オプション 機能
-G 検索に正規表現を使用できる。
-E 検索に拡張正規表現を使用できる。
-F 固定文字列の検索を行なう。
-[行数] マッチした行から前後、指定した行数を同時に検索結果として表示する。
-A [行数] マッチした行から後、指定した行数を同時に検索結果として表示する。
-B [行数] マッチした行から前、指定した行数を同時に検索結果として表示する。
-C マッチした前後2行を同時に検索結果として表示する。
-b 各行の前にファイルの先頭からバイト単位のオフセット数を表示する。
-n 各行の前に行番号を表示する。
-c 検索条件にマッチした行数を表示する。-cvとするとマッチしなかった行数を表示する。
-e [パターン] 検索条件を指定する。
-f [ファイル名] 検索パターンとしてファイルの内容を使用する。
-h 検索結果の先頭にマッチしたファイル名を同時に表示する。
-i 検索条件に大文字と小文字の区別をなくす。
-l 検索条件にマッチしたファイル名を表示する。-lvとするとマッチしなかったファイル名を表示する。
-q 検索結果を表示しない。
-s エラー・メッセージを表示しない。
-v マッチしない行を検索結果として表示する。
-w パターン・マッチを、単語全体で行なうようにする。
-x 行全体を検索対象にする。
表2 正規表現の表記
表記 意味
. 改行文字以外の任意の1文字。
* 直前の1文字の0回以上の繰り返しに一致。直前の文字は正規表現でも構わない。
^ 行の先頭を表す。
$ 行の末尾を表す。
[] かっこ内の任意の文字に一致。ハイフン(-)で範囲指定もできる。かっこ内の最初の文字に^を指定すると、意味が逆転する。
+ 直前の文字の1個以上の連続。
? 直前の文字の0または、1文字にマッチ。
[パターン1]|[パターン2] パターン1または、パターン2のいずれかにマッチ。
([パターン1]) パターンをグループ化する。
\ 正規表現に使われる記号を普通の文字として扱う。

http://kank.o.oo7.jp/2016/linux/text_003.html
初版:2002.09.13
更新:2013.7.2(リニューアル)
更新:2016.8.17(リニューアル)