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

问题描述 投票:0回答:2

我看到了这个:如何替换换行符( )使用 sed?,并想我会尝试使用

tr
来用
',
替换换行符。

该文件如下所示:

something
newline
newline again

我希望它看起来像这样:

something',
newline',
newline again',

所以,我尝试了这些:

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

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

sed tr
2个回答
6
投票

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',

0
投票

为什么不使用这个?

cat file ¦ while read line
do
    echo $line"',"
done
© www.soinside.com 2019 - 2024. All rights reserved.