我看到了这个:How can I replace a newline (\n) using sed? ,并认为我会尝试使用 tr
用 ',
替换换行符.
该文件如下所示:
something
newline
newline again
我希望它看起来像这样:
something',
newline',
newline again',
所以,我尝试了这些:
tr "\n" "'," < myfileabove
tr "\n" "\'," < myfileabove
他们都没有做我想做的事……我做错了什么吗?
最佳答案
tr
将一个字符转换为另一个字符,它不会映射到/从字符串,因此它不能将换行符映射到字符串。正在尝试使用 sed
这样做会让你变得难以理解和/或不可携带的困惑。只需使用 awk
:
awk -v ORS="'," '1' file
等等 - 你发布的例子没有显示你用
',
替换换行符这将是:$ awk -v ORS="'," '1' file
something',newline',newline again',$
它显示您附加
',
在每一行的末尾,这是完全不同的事情。你仍然不能用 tr
做到这一点但你可以用 sed
做到这一点或 awk
:$ sed 's/$/'\'',/' file
something',
newline',
newline again',
$ awk -v ORS="',\n" '1' file
something',
newline',
newline again',
关于sed - 如何使用 `tr` 用逗号替换换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39022935/