如何使用`tr`用逗号替换换行符?

时间:2016-08-18 16:09:24

标签: sed tr

我看到了这一点:How can I replace a newline (\n) using sed?,并且我想我会尝试使用tr将换行符替换为',

该文件如下所示:

something
newline
newline again

我希望它看起来像这样:

something',
newline',
newline again',

所以,我试过这些:

tr "\n" "'," < myfileabove tr "\n" "\'," < myfileabove

他们都没有做我想做的事......我做错了什么?

1 个答案:

答案 0 :(得分:5)

tr将一个字符转换为另一个字符,它不会映射到字符串/从字符串映射,因此它不能将换行符映射到字符串。尝试使用sed来做这件事会让你无法理解和/或不便携。只需使用awk

awk -v ORS="'," '1' file

继续 - 您发布的示例并未显示您使用',替换换行符:

$ awk -v ORS="'," '1' file
something',newline',newline again',$

它显示您在每行的末尾附加',,这是完全不同的事情。您仍然无法使用tr执行此操作,但您可以使用sedawk执行此操作:

$ sed 's/$/'\'',/' file
something',
newline',
newline again',

$ awk -v ORS="',\n" '1' file
something',
newline',
newline again',