ホーム > テキスト処理・検索 > egrep

egrep: 拡張正規表現によるテキスト検索

egrepはgrepコマンドのバリアントで、デフォルトで拡張正規表現(ERE)を使用してファイルからパターンを検索し、一致する行を出力します。これはgrep -Eと同じ機能を提供し、+?|()などのメタ文字をエスケープなしで直接使用できるため、複雑なパターンマッチングに便利です。

概要

egrepは、テキストファイルから特定のパターンを含む行を見つけるために使用されます。通常のgrepとは異なり、egrepは拡張正規表現(ERE)をデフォルトでサポートしているため、より柔軟で強力なパターンマッチングが可能です。

主な特徴

  • 拡張正規表現(ERE)のデフォルトサポート
  • grep -Eと機能的に同等
  • さまざまなオプションによる検索と出力の制御
  • パイプ(|)と組み合わせて他のコマンドの出力をフィルタリング

主なオプション

egrepコマンドとともによく使用される主なオプションです。

検索制御

出力形式

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`egrep` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

egrepコマンドを活用したさまざまな使用例です。

基本的な拡張正規表現検索

egrep 'apple|banana' fruits.txt

ファイルから「apple」または「banana」を含む行を検索します。

大文字小文字を区別せずに検索

egrep -i 'error' logfile.log

ログファイルから「error」または「ERROR」など、大文字小文字を区別せずに「error」を含む行を検索します。

コメント(#)で始まらない行を出力

egrep -v '^#' config.ini

設定ファイルからコメントアウトされた行を除外し、実際の構成内容のみを確認します。

特定のディレクトリで再帰的に検索

egrep -r 'function_name' ./src

現在のディレクトリの「src」サブディレクトリ内のすべてのファイルで「function_name」を検索します。

行番号とともにパターンを検索

egrep -n 'keyword' document.txt

ドキュメントファイルで「keyword」を検索し、一致した行の番号を一緒に出力します。

プロセスリストから特定のプロセスを検索

ps aux | egrep 'apache|nginx'

`ps aux`コマンドの出力から「apache」または「nginx」関連のプロセスをフィルタリングして確認します。

ヒントと注意点

egrepの使用に関する役立つヒントと注意点です。

grep -Eとの関係

ほとんどの最新のLinuxシステムでは、egrepgrep -Eへのシンボリックリンクまたはエイリアスです。したがって、grep -Eを使用する方が一般的で推奨されます。

  • egrep == grep -E
  • 複雑な正規表現を使用する場合、egrepまたはgrep -Eは通常のgrepよりも便利です

パフォーマンスの考慮

正規表現ではなく固定文字列を検索する場合は、fgrep(またはgrep -F)を使用する方がパフォーマンスが向上する可能性があります。fgrepは正規表現のパースオーバーヘッドがないためです。

  • 固定文字列検索: fgrep(またはgrep -F)を使用
  • 正規表現検索: egrep(またはgrep -E)を使用

正規表現のエスケープ

通常のgrepでは、+?|()などの拡張正規表現メタ文字を使用するにはバックスラッシュ(\)でエスケープする必要がありますが、egrepではエスケープなしで直接使用できます。

  • egrepでは(a|b)+のように直接使用
  • 通常のgrepでは\(a\|b\)\+のようにエスケープが必要


同じカテゴリのコマンド