Linux 如何更改sed的记录分隔符
我知道我可以在awk中更改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重新更改
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模式的东西”让人困惑。你介意编辑一下让它更清楚吗?另外,一个输入和输出的示例也会有帮助。