Linux や macOS のターミナルで日常的に使われる「grep」コマンド。ログ調査やファイル検索に欠かせないこのコマンドには、実はバリエーションがいくつか存在します。
この記事では、grep、egrep、fgrep の違いや、現代的な使い方、そして推奨される使い分けについて、詳しく解説します。
grep / egrep / fgrep の違い
| コマンド | 正規表現 | 拡張正規表現 | 特徴 | 推奨状況 |
|---|---|---|---|---|
grep | ○(基本正規表現) | × | 標準的な検索コマンド | 一般用途に最適 |
egrep | ○ | ○(拡張正規表現) | grep -E と同等 | 非推奨(後方互換用) |
fgrep | ×(正規表現不可) | × | grep -F と同等 | 非推奨(後方互換用) |
✅
egrepやfgrepは現在は非推奨。代わりにgrep -Eやgrep -Fを使うのがベストプラクティスです。
よく使う grep コマンド例
grep '^Error' file.log # 「Error」で始まる行を検索
grep -E 'error|warning|fatal' app.log # 拡張正規表現で複数マッチ
grep -F '$HOME' shell.txt # 文字列「$HOME」をそのまま検索
grep のモダンなオプション活用例
grep -i:大文字・小文字を区別しない(例:grep -i error log.txt)grep -r:ディレクトリを再帰的に検索(例:grep -r TODO ./src)grep -n:行番号付きで表示(例:grep -n main program.c)grep -l:マッチしたファイル名だけ表示(例:grep -l keyword *.txt)grep -o:マッチした部分だけ表示(例:grep -o '[0-9]\+' data.txt)grep --color=auto:マッチ部分に色をつけて表示
使用目的別:grepの推奨オプション
| 条件 | 推奨コマンド |
|---|---|
| 正規表現が不要(文字列一致) | grep -F |
| 複雑な正規表現を使いたい | grep -E |
| 一般的なログ検索 | grep または grep -i |
補足
egrep,fgrepは将来的に削除される可能性があるため、今からgrep -E,grep -Fに慣れておきましょう。- 色付き表示(
--color=auto)は、視認性向上に便利です。