如何更改sed的记录分隔符

时间:2013-02-05 06:59:58

标签: linux sed

我知道我可以更改awk中的RS =something

有什么方法可以将\n RS更改为sed中的多行模式

3 个答案:

答案 0 :(得分:1)

简答:不,你不能。 Sed读取文本行,而不是带字段的记录。

根据文字的性质,您可以使用tr首先将所有\n更改为未使用的字符,将所需的(单字符)记录分隔符更改为\n。在sed中进行所需的更改,然后使用tr更改分隔符。

您还可以操纵保留空间,以便使用多行文本。这在例如 sed&amp ;;由Dougherty和Robbins撰写的awk

但是,使用awk可能更容易。

答案 1 :(得分:0)

GNU sed 为空分隔的记录提供了 -z / --null-data / --zero-terminated 选项,但这已经足够了。

示例:

sed -z 's/\n\n+/\n\n/g'

答案 2 :(得分:-1)

是否要使用sed替换所有新行字符?
然后这样做。如果不解释你想要什么

 sed -e :a -e N -e 's/\n/|/g' -e '$!ba' file