grepコマンドの使い方:文字列パターンで検索する

grepは、ファイルや出力の中から、指定した文字列やパターンに一致する行を取り出すコマンドです。ログの調査、設定ファイルの確認、コマンド出力の絞り込みなど、Linuxで最も使う場面が多いコマンドの1つです。

grepのよく使う形

実務や学習で登場しやすい使い方を、そのまま入力できる形でまとめました。

コマンド例内容
grep error app.logapp.logから「error」を含む行を表示
grep -i error app.log大文字小文字を区別せず検索
grep -n error app.log一致した行の行番号も表示
grep -r "timeout" /etc/ディレクトリ配下を再帰的に検索
grep -v '^#' file.conf一致しない行を表示(コメント行を除く)
grep -c error app.log一致した行数だけ表示
ps aux | grep nginx他のコマンドの出力を絞り込む
grep -E 'error|warn' app.log拡張正規表現で、いずれかに一致する行を表示

grepの主なオプション

オプション意味
-i大文字小文字を無視
-v一致しない行を表示
-c件数のみ
-n行番号
-r再帰検索
-l一致したファイル名のみ表示
-w単語単位で一致
-E拡張正規表現を使用
-o一致部分のみ表示
-A・-B・-C前後の行も表示

grepの実行例と結果の読み方

user@linux-study:~$ grep -n "ERROR" app.log
15:2026-01-10 09:12:03 ERROR Connection timeout
42:2026-01-10 09:20:11 ERROR Disk full

grep -nで、app.logの中から"ERROR"という文字列を含む行だけを抽出し、-nによって行番号(15行目・42行目)も一緒に表示しています。

練習用ターミナルでは、grepをブラウザ上で安全に試せます。

grepを使うときの注意点

ps aux | grep nginxのように使うと、grep nginx自身のプロセスも結果に出ます。気になる場合はpgrep nginxが便利です。

検索パターンに$や*などの特殊文字を含めるときは、シングルクォートで囲むとシェルに解釈されません。固定の文字列として検索したいときはgrep -Fを使います。

大きなログを調べるときは、-nで行番号を出し、-A・-Bで前後の行も合わせて見ると、原因をたどりやすくなります。

grepに関するよくある質問

複数のキーワードで検索するには?

grep -E 'word1|word2' fileのように|でつなぎます。すべてを含む行だけ欲しいときは、grep word1 file | grep word2とパイプでつなぎます。

前後の行も表示するには?

-A 3で一致行の後ろ3行、-B 3で前3行、-C 3で前後3行を表示します。

grepで「Binary file matches」と出るのは?

バイナリファイルとして判断されたためです。テキストとして扱うときは-aを付けます。

関連ページ

あわせて覚えたいコマンド:find・sed・awk・tail・journalctl

grepが登場する章:初級 第5章

← Linuxコマンド一覧へ戻る