RackShareRackShareラックを、シェアしよう

grepコマンドの使い方|オプションと正規表現を実例で

ハク@インフラエンジニア ・ 公開 2026-08-30 ・ 更新 2026-09-04 ・ 閲覧 58

grepコマンドは、ファイルや出力の中から 指定した文字列を含む行を探す ための、Linux運用で最も使うコマンドの一つです。ログ調査の主役なので、基本と頻出オプションを実例でまとめます。

基本の使い方

grep "検索文字列" ファイル名
grep "error" /var/log/syslog     # syslogから error を含む行を抽出

よく使うオプション

grep -i "error" app.log     # 大文字小文字を無視(Error/ERRORも)
grep -n "error" app.log     # 行番号も表示
grep -r "TODO" ./src        # ディレクトリを再帰的に検索
grep -v "debug" app.log     # 一致しない行を表示(除外)
grep -c "error" app.log     # 一致した行数をカウント
grep -A 3 "error" app.log   # 一致行の後3行も表示
grep -B 3 "error" app.log   # 一致行の前3行も表示
grep -C 3 "error" app.log   # 前後3行も表示

-A/-B/-C(前後の文脈表示)は、エラーの前後で何が起きたかを見るのに重宝します。

パイプと組み合わせる

grepの真価は、他のコマンドの出力を絞り込むときに出ます。

ps aux | grep nginx           # nginxのプロセスだけ抽出
ss -tuln | grep 443           # 443番の待ち受けだけ
journalctl -u app | grep -i error   # サービスのエラーだけ

正規表現で柔軟に検索

grep -E "error|warn" app.log        # error か warn(-Eで拡張正規表現)
grep -E "^2026-08-15" app.log       # 行頭が日付
grep -E "[0-9]{3}\.[0-9]+" app.log  # IPっぽいパターン

^ は行頭、$ は行末、| はor、[0-9] は数字。よく使う記号だけ覚えれば十分戦えます。

実務での定番

  • 障害時に、時刻とエラーを絞る: grep "10:30" app.log | grep -i error
  • 特定IPの通信を追う: grep "192.168.1.10" access.log
  • 設定の該当行を探す: grep -n "listen" nginx.conf

まとめ

grepは「行を絞り込む」基本コマンド。-i(大小無視)、-n(行番号)、-r(再帰)、-v(除外)、-A/-B/-C(前後表示)を押さえ、パイプと正規表現を組み合わせれば、ログ調査が劇的に速くなります。まずはこの実例を手元で試すのがおすすめです。

♥ 0(いいねはログイン後)

コメント 0 件

コメントするにはログインしてください。