【UNIXコマンド】grepでファイル内の文字列検索

UNIXコマンド「grep」でファイル内の文字列を検索する方法についてまとめました。

ファイル内の文字列検索

grepコマンドは、ファイル内の文字列を検索できます。

grep [オプション] '検索文字列' ファイル名
オプション 説明
-i 大文字小文字を区別しない
-v 指定した文字列を含まない行のみ表示
-n 行番号を付けて表示
-c 表示した総行数を表示
-l マッチしたファイルのファイル名のみ表示
-o 一致した部分のみ表示(このオプションなしだと行全体を表示
-h ファイル名を表示しない
-e パターン パターン(正規表現)を指定(これがない場合は最初のパラメータがパターンになる)
-r ディレクトリを再帰的にたどって検索
-A 行数 一致した行の後も指定した行数を表示
-B 行数 一致した行の前も指定した行数を表示
-C 行数 一致した行の前後も指定した行数を表示
-E 拡張正規表現を使用
-L 一致しなかったファイルのファイル名を表示
-H 検索結果の出力にファイル名を付加
主なパターン 意味
^ 行先頭の文字列に一致 ^xyz → xyzで始まる全ての行に一致
行末尾の文字列に一致 xyz$ → xyzで終わる全ての行に一致
. 1文字に一致 ^x . . z → xで始まり、任意の2文字、次にzが続く文字を含む行に一致
[] 集合の1つに一致 [Xx]yz → Xyzもしくはxyzを含む行に一致」
[ ^ ] 集合中にない文字に一致 [^X-Z]abc → XからZ以外の文字の後ろにabcを含む行に一致
* 直前の文字の0個以上の繰り返しに一致 ^x*yz → パターンyzの前に0個以上のxを持つ行に一致

※参考:【正規表現】指定例と一覧表

実行例

コマンドの実行例です。

grep '$5' file.txt

「file.txt」内の5で終わる行を表示します。

関連記事
1 【UNIX入門】コマンド・サンプル集
関連記事