パターンで始まる行のマージ

パターンで始まる行のマージ

sed、grep、awkを理解しようとしていますが、次の問題に直面しました。 sedを使用して2つのパターン(開始と終了)の間のすべての行を取得した後、次のログが表示されます。

START
tag: text info text text info text
    text info texttext info text
    text info texttext info text
    text info texttext info text

other_tag: text info text text info text
    text info text text info text text info text
    text info text text info text text info text
END
START
tag: text info text text info text
    text info text text info text
    text info text text info text
other_tag: text info text text info text
    text info text text info text text info text
    text info text text info text text info text
END

次のように開始[タブ]を削除して、すべての行を親行にマージしたいと思います。

START
tag: text info text text info text text info text text info text text info text text info text text info text text info text
other_tag: text info text text info text text info text text info text text info text text info text text info text text info text
END
START
tag: text info text text info text text info text text info text text info text text info text
other_tag: text info text text info text text info text text info text text info text text info text text info text text info text
END

誰でも私を助けることができますか?ありがとうございます!

答え1

おそらく継続して使用する必要があるようです。sed。使用窒素次の入力行をパターン空間に追加して一致させることができます。\N2行の間。

以下を参照できます。

sed ':a; N; $!b a; s/\n\s\{1,\}/ /g'

関連情報