合并以模式开头的行

合并以模式开头的行

我正在尝试了解 sed、grep 和 awk,但面临以下问题:使用 sed 获取两个模式(开始和结束)之间的所有行后,我有以下日志:

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

我想将所有行合并到其父行,删除起始 [tab],如下所示:

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。使用可以将下一行输入附加到模式空间中,然后您可以匹配\n两条线之间。

您可以参考:

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

相关内容