为什么 sed , to newline 可以工作,但 newline to , 却不起作用?

为什么 sed , to newline 可以工作,但 newline to , 却不起作用?

我有一个包含名字列表的文本文件,我正在尝试将换行符替换为,

这是我正在使用的命令

sed 's/\
/,/g' file

当相反的情况发生时

sed 's/,/\
/g' file

它替换,为换行符。

答案1

sed无法以简单的方式吃换行符。sed逐行工作,因此它只能添加换行符,而不能删除它们。但你可以有效地通过存储连续的两行来做一些 sed 练习。您可能还想看看tr,它能够替换字符,例如:

tr '\n' , < file

此外,您还可以使用许多工具'\n'来表示换行符(用于 UNIX 换行符)。

正如斯蒂芬指出的那样,tr将取代全部换行(包括最后一个)。您可能更喜欢使用paste,它将使用指定的分隔符连接行:

paste -sd, file

相关内容