ホーム > テキスト処理・検索 > 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システムでは、`egrep`は`grep -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\)\+`のようにエスケープが必要

同じカテゴリのコマンド