grepのパラメータ拡張

grepのパラメータ拡張

複数の項目で埋められたテキストファイルから次のパターンの文字列を検索するには:

entry=G_1234
entry=G_5678
entry=G_2345

次のgrep文は結果を提供しません。

grep -ioe "entry=G_{1234,2345}" filename

エラーがどこにあるのか、grepでパラメータ拡張が不可能なのかを教えてください。

答え1

誰でも:

grep -iEo 'entry=G_(1234|2345)'

つまり、E正規表現の拡張()交互演算子を使用します。

または、中かっこ拡張をサポートするシェルの場合は、次のようにします。

grep -io '-eentry=G_'{1234,2345}

その後、シェルはそれを次に展開します。

grep -io -eentry=G_1234 -eentry=G_2345

grepにこれらの2つのうちの1つを見つけさせます。金利表現する。

答え2

Grepはシェルパターンではなく正規表現を使用します。正規表現にはさまざまな構文があります。

grep -ioe 'entry=G_\(1234\|2345\)' filename

関連情報