我有 n 个包含一行的文件,并且想将它们连接起来:
输入文件:
file_1
A B C
file_2
1 2 3
所需的控制台输出结果:
A B C
1 2 3
但随着:
$ cat file_1 file_2
我得到:
A B C1 2 3
尝试
echo | cat file_1 - file_2
或者,使用换行符终止 file_1 的最后一行。
还有一种方式:
$ echo > n
$ cat file_1 n file_2 n file_1 n file_2 n
A B C
1 2 3
A B C
1 2 3
如果您有 2 个以上的文件,则可以在 shell 中使用循环并echo
用于插入新行:
for f in file1 file2 file3; do cat "$f"; echo; done > output
如果您只有两个文件,则可以使用echo
输出一个新行并将其放在两个文件之间,如下所示:
echo | cat file1 - file2
这是我在Ubuntu 12.04bash
上使用shell观察到的。
$ echo "1 2 3" > file1
$ echo "a b c" > file2
$ cat file1 file2
1 2 3
a b c
分开不同的线条。
看起来echo
命令确保将正确终止的字符串写入两个文件。
您file1
最后缺少换行符。因此,当您使用cat
它们时,没有打印换行符file1
与file2
.
您要么需要修改file1
以包含尾随换行符,要么以其他方式插入它。