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

Hun*_*nle 3 sed tr

我看到了这一点:如何使用sed替换换行符(\ n)?,并认为我会尝试用tr替换换行符',

该文件如下所示:

something
newline
newline again
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

something',
newline',
newline again',
Run Code Online (Sandbox Code Playgroud)

所以,我尝试了这些:

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

他们俩都没有我想要的...。我做错什么了吗?

Ed *_*ton 5

tr将一个字符转换为另一个字符,它不会映射到字符串或从字符串映射,因此不能将换行符映射到字符串。尝试使用sed它会使您难以理解和/或无法携带。只需使用awk

awk -v ORS="'," '1' file
Run Code Online (Sandbox Code Playgroud)

坚持下去-您发布的示例未显示您将换行替换',为:

$ awk -v ORS="'," '1' file
something',newline',newline again',$
Run Code Online (Sandbox Code Playgroud)

它显示您',在每行的末尾追加内容,这是完全不同的事情。您仍然无法tr使用sed或这样做awk

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

$ awk -v ORS="',\n" '1' file
something',
newline',
newline again',
Run Code Online (Sandbox Code Playgroud)