server:~# cat file1.txt
abc
pqr
xyz
我想转换如下:
abc,pqr,xyz
我正在使用下面的命令
server:~# cat file1.txt | tr "\n" ", "
abc,pqr,xyz,server:~#
请注意,我的输入可能包含 n 行,但我们不包含。
怎样才能达到..
server:~# cat file1.txt | tr "\n" ", "
abc,pqr,xyz
server:~#
答案1
你可以使用paste
命令
paste -sd, file1.txt
默认情况下,paste
并排粘贴多个文件中的行,并用制表符分隔;该-d
选项设置备用分隔符并且该-s
选项告诉它换行s一次从一个文件串行(或者,在本例中,从单个文件串行)。
答案2
paste -sd,
是合理的,但如果您想要替代方案或对输入执行更多操作而不仅仅是组合行:
$ awk '{printf "%s%s", (NR>1 ? "," : ""), $0} END{print ""}' file
abc,pqr,xyz