我有3个txt文件:
file1.txt
:
11
file2.txt
:
22
file3.txt
:
33
我想将3个文本文件合并为一个文件,并在它们之间加上逗号。
endfile.txt
应该如下:
11,22,33
我会尝试:
cat file1.txt; cat file2.txt; cat file3.txt > endfile.txt
逐行写,但是我想并排打印并用逗号分隔 你能帮忙吗?
答案 0 :(得分:0)
cat file1.txt | cat - file2.txt | cat - file3.txt | tr '\n' ',' | head --bytes -1
答案 1 :(得分:0)
一种非常简单的方法只是使用printf
:
(printf "%s" $(cat file1.txt); printf ",%s" $(cat file2.txt file3.txt)) > endfile.txt
这将在11,22,33
中产生endfile.txt
。 printf
的两组用于防止在11
之前写逗号,并且整行作为子shell执行,因此所有命令的输出都重定向到endfile.txt
。您可能还想在'\n'
之后写一个最后的file3.txt
,以确保生成的endfile.txt
包含POSIX行尾。
答案 2 :(得分:0)
我的回答如下。
$ cat *.txt | sed -z 's/\n\(.\)/,\1/g'
如果您确切定义顺序,则紧随其后。
$ cat file{1,2,3}.txt | sed -z 's/\n\(.\)/,\1/g'
答案 3 :(得分:0)
使用paste
:
paste -sd, file1.txt file2.txt file3.txt > endfile.txt