awkまたはsedを使用して2つのパターン間でテキストを選択する

awkまたはsedを使用して2つのパターン間でテキストを選択する

以下の2つのモードからテキストを選択したいと思います。

入力は次のとおりです。

Blalala
'Omfoem From 
balanf PAT1 This is the
text that I want
to get PAT2: apples
Whatever: oranges

これが私が望む結果です:

This is the
text that I want
to get

このスクリプトを試してみました。

awk '/^.*PAT1/{flag=1; next} /.*PAT2/{flag=0} flag' file1.txt

ただし、次の結果のみ出力されます。

text that I want

パターンと同じ行のテキスト部分がありません。

私はOSXを使用しています。

ベストアンサー1

GNU *バリアント、レコード区切り文字、フィールド区切り文字をawk作成し、最後のフィールドを印刷して出力が重複結果ではないことを確認します。PAT2RSPAT1FSNFRS

awk 'BEGIN{RS="PAT2"; FS="PAT1"}NF>1{print $NF}' file1
 This is the
text that I want
to get 

 This is another text that I want
to get DONE

* @ EdMortonが言及

おすすめ記事