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
)は、視認性向上に便利です。