私の問題を説明するために例を使用します。次の文字列を含むファイル名「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
これをオーバーライドする方法、または私の問題を解決する別の方法はありますか?