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一度に1つのファイル(またはこの場合は単一のファイル)からシリアル化します。
答え2
paste -sd,
合理的ですが、代替を望んだり、行を結合するよりも入力としてより多くのことを行う場合:
$ awk '{printf "%s%s", (NR>1 ? "," : ""), $0} END{print ""}' file
abc,pqr,xyz