This ページには、正規表現内の任意の乗数に「?」という接尾辞を付けることができると記載されています。欲張りでない検索を行うため。ただし、grepで機能させる方法がわかりません。
grep -E '^.*?$' file
テキスト全体を印刷します。
Grepを使用して貪欲でない正規表現検索を実行するにはどうすればよいですか?
PCRE(Perl互換正規表現)をサポートするgrep
が必要です。例えばGNU grep
にはこれがあります--P
オプションで利用できます。pcregrep
という名前のスタンドアロンプログラムもあります。通常のパッケージの多くのシステム。
-E
は、?
トークンとの貪欲でないマッチングサポートを持たないERE(拡張正規表現)を有効にすることに注意してください。
したがって、GNU grep
を使用すると、次のように実行できます。
grep -Po '^.*?foo' file
最初から最初のfoo
まで一致(および抽出)します。