我看到了这个:如何替换换行符( )使用 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',
为什么不使用这个?
cat file ¦ while read line
do
echo $line"',"
done