0

私の問題を説明するために例を使用します。次の文字列を含むファイル名「file.txt」があるとします。

AooYoZooYZoAoooooYZ

grep を使用して、「A」で始まり「YZ」で終わるが、「A」と「YZ」の間に「YZ」を含まないすべての部分文字列を検索したいと考えています。望ましい出力は次のようになります。

AooYoZooYZ

ああああああああ

私の最善の推測は、次のことです。

$grep -E -o 'A[^(YZ)]*YZ' file.txt

しかし、出力は次のとおりです。

ああああああああ

括弧が YZ の意味を保持するようにしたいのですが、GNU grep マニュアル ( http://www.gnu.org/software/grep/manual/grep.html )を読みました。ブラケット式内の特別な意味。」私も試しました:

$grep -E -o 'A.*YZ ファイル.txt

しかし、これは行全体を出力します:

AooYoZooYZoAoooooYZ

これをオーバーライドする方法、または私の問題を解決する別の方法はありますか?

4

1 に答える 1