【发布时间】:2013-04-09 20:56:12
【问题描述】:
我有一个文件,其中包含一些跨越多行的信息。为了某些其他 bash 脚本我必须使用属性,我需要这些信息都在一行上。但是,我显然不想删除文件中的所有换行符。
我想要做的是替换换行符,但只在所有对 STARTINGTOKEN 和 ENDINGTOKEN 之间,这两个标记总是在不同的行上(但永远不会混淆在一起,例如不可能有两个 STARTINGTOKEN 连续在 ENDINGTOKEN 之前)。
我发现我可以删除换行符 tr "\n" " " 而且我还发现我可以在多行上匹配模式 sed -e '/STARTINGTOKEN/,/ENDINGTOKEN/!d'
但是,我不知道如何组合这些操作,同时保持文件的其余部分保持不变。
有什么建议吗?
【问题讨论】:
-
如果您的数据允许,请删除所有换行符,然后将
ENDINGTOKEN替换为ENDINGTOKEN\n。