Linux 如何更改sed的记录分隔符

Linux 如何更改sed的记录分隔符,linux,sed,Linux,Sed,我知道我可以在awk中更改RS=something 是否有任何方法可以将sed中的\nRS更改为muliline模式的内容是否要使用sed替换所有新行字符? 然后这样做。如果不解释你想要什么 sed -e :a -e N -e 's/\n/|/g' -e '$!ba' file 简短回答:不,你不能。Sed读取文本行,而不是带有字段的记录 根据文本的性质,您可以使用tr首先将所有\n更改为未使用的字符,并将所需的(单个字符)记录分隔符更改为\n。在sed中进行所需的更改,然后使用tr重新更改

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


是否有任何方法可以将sed中的
\n
RS更改为muliline模式的内容

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

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

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

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

您还可以操纵保留空间,以便处理多行文本。例如,Dougherty和Robbins的sed&awk中描述了这一点

不过,仅仅使用
awk
可能更容易。

GNU-sed有空分隔记录的选项,但这已经是最好的了

例如:

sed-z's/\n\n+/\n\n/g'
这句话“我有没有办法在sed中将
\n
RS改成muliline模式的东西”让人困惑。你介意编辑一下让它更清楚吗?另外,一个输入和输出的示例也会有帮助。