我正在尝试了解 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'