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で絞る → 結果を保存
という流れは、日々の調査やログ解析で極めて実用的です。慣れておくと業務効率が一段と向上します。