这是我的示例文件
cat test.txt
"IND WEB",
"Speed Web (Internal webserver)",
"Web Bill",
我尝试了以下两种解决方案将多行转换为单行,但是双引号"
丢失了!
cat listofapps.txt | xargs -s 8192
IND WEB, Speed Web (Internal webserver), Web Bill,
tr '\n' < listofapps.txt
IND WEB, Speed Web (Internal webserver), Web Bill,
您能否建议保留双引号?
答案1
当您使用 时xargs
,双引号会丢失,因为它们正在由xargs
实用程序解释(请参阅为什么 xargs 从输入中去除引号?)。
您的tr
命令已损坏,应该给您一条错误消息。
要使用 删除换行符tr
,请使用
tr -d '\n' <file
要将换行符替换为空格,请使用
tr '\n' ' ' <file
要将行与空格连接起来:
paste -sd ' ' file
(与上面相同,只是它在末尾添加换行符以使其成为有效的文本行)。
答案2
sed
方式:
sed '${G;s/\n//g;p;};H;d' sample.txt
相同,但在评论中有解释:
sed '
${
# If we are in the last line
G; # Get anything stored in the hold space
s/\n//g; # Replace any occurrence of space with nothing
p; # Print
}
# We are not in the last line so
H; # save the current line
d; # and start the next cycle without print
' sample.txt