grepコマンドの使い方
🧩はじめに
grepはUNIX系システムで定番のテキスト検索ツールで、ログ調査や設定ファイルの解析など、日々の業務や開発で活躍します。本記事では、基本的な使い方から正規表現や複数条件のor検索、さらにパイプを使ったフィルタ処理の実践例まで、現場で即使えるテクニックを紹介します。
🔍基本のgrepの使い方
grep [検索パターン] [ファイル名]
例:
grep error /var/log/syslog
→ syslogの中から「error」を含む行を抽出。
📐正規表現の使い方
🧵基本正規表現(BRE)
grepはデフォルトで基本正規表現を使います:
-
^:行頭 -
$:行末 -
.:任意の1文字 -
.*:任意の文字列(0回以上の繰り返し) -
[a-z]:a〜zの1文字
例:
grep "^start.*end$" text.txt
→「start」で始まり「end」で終わる行。
*や?をそのまま使うときはエスケープが必要になるケースがあります。
🧵拡張正規表現(ERE)
オプション -E または egrep で使います。
-
|:OR条件 -
+:1回以上の繰り返し -
?:0回または1回
grep -E "error|fail|warn" log.txt
🔗複数条件(OR検索)
✅ |を使う(拡張正規表現)
grep -E "apple|banana|grape" fruits.txt
✅ -eオプションを複数使用
grep -e apple -e banana -e grape fruits.txt
🎯パイプでつなげてフィルタ+ファイル保存
UNIXの強みはコマンド同士をつなげるパイプ処理にあります。grepはその代表的な使い方に最適です。
🔧例:dmesg出力をgrepでフィルタして保存
dmesg | grep -i usb > usb.log
-
dmesg:カーネルログを出力 -
grep -i usb:USB関連の行を抽出(大文字小文字を無視) -
> usb.log:結果をファイルに保存
🔧例:プロセス一覧からpythonを含む行を抽出して保存
ps aux | grep python > python_procs.txt
🧰よく使うオプションまとめ
| オプション | 内容 |
|---|---|
-i |
大文字小文字を無視 |
-v |
マッチしない行を出力 |
-n |
行番号を表示 |
-r |
ディレクトリを再帰的に検索 |
-l |
一致するファイル名のみを出力 |
-c |
一致した行数だけを表示 |
-o |
一致部分だけを抽出 |
-E |
拡張正規表現を使用 |
-e |
複数パターンの指定 |
--color |
該当部分に色をつけて表示 |
💡ヒント:色付き表示で視認性アップ
grep --color=auto "pattern" file.txt
ハイライト表示で見やすく。エイリアスに登録するのもおすすめ:
alias grep='grep --color=auto'
🏁まとめ
grepはシンプルながら、正規表現やパイプと組み合わせることで非常に強力なツールになります。特にUNIX的な「コマンドをつなぐ文化」において、grepはフィルタ処理の要です。普段の作業でも、ログ調査やテキスト整形の場面で、ぜひ活用してみてください。
特に、他コマンドの出力 → grepで絞る → 結果を保存という流れは、日々の調査やログ解析で極めて実用的です。慣れておくと業務効率が一段と向上します。