Linuxコマンド「grep」


grepは指定された入力(ファイル、標準入力)から、指定されたパターン(検索正規表現)にマッチする文字列を含む行を検索するコマンドです。

grep 検索パターン ファイル名

# AND条件での検索
grep 検索文字A ファイル名 | grep 検索文字B

# OR条件での検索
grep -e 検索文字A -e 検索文字B ファイル名

# Aは含むが、Bは含まないファイルの検索
grep 検索文字A ファイル名 | grep -v 検索文字B

🎂 利用例

フォルダ内を検索、行番号を表示

フォルダ内のファイルを再帰的に検索して、行番号を表示

grep -rn 検索パターン ディレクトリ

ログにマッチする箇所をリアルタイムで表示

tail -f ログファイル | grep --line-buffered 検索パターン

マッチした行とその前後の5行を表示

grep -C5 検索パターン ファイル名

😀 よく使うオプション

オプション 意味
-i 大文字と小文字を区別しない
-v 一致しないものを検索する
-n 検索結果に行番号を表示する
-l ファイル名のみを検索する
-r ディレクトリ内も検索対象にする
-C数字 マッチした行の前後x行を表示

😸 応用例

Shellでのワイルドカードの利用

引数のワイルドカード展開を行う場合は、シングルクオートで囲みます。

grep '$VERBOSE' /etc/init.d/*
/etc/init.d/boologd: ...

ダブルクオートで囲んだ文字列は変数の展開が行われた後に、コマンドに渡されます。

grep $HOME /etc/passwd
user:x:1028:200:TEST User,,,:/home/user:/bin/tcsh

🎃 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍