2つの特定の文字列間のすべての文字を表示するには?

2つの特定の文字列間のすべての文字を表示するには?

ファイル内の文字列 "xxx"と "yyy"の間のすべての文字を表示したいです(引用符は区切り文字の一部ではありません)。どうすればいいですか?たとえば、「He​​llo world xxxこれはyyyファイルです」と入力すると、「これはファイルです」と出力する必要があります。

ベストアンサー1

sed次のようにパターンマッチングフラグを使用できます。

echo "Hello world xxx this is a file yyy" | sed 's/.*xxx \(.*\)yyy/\1/'

これは.*xxx最初から一致するようになりますxxx。以下を使用して表示するのが最善ですgrep

ここに画像の説明を入力してください。

\1まですべてを覚えることができますが、\(.*\)そうでないのは「メモリモード」です。xxxyyyyyy

最後に記憶された文字列を印刷します。

おすすめ記事