我有n个文件,每个文件只有一行内容,我想将它们连接起来:
输入文件:
file_1
A B C
file_2
1 2 3
期望的控制台输出结果:
A B C
1 2 3
但是带有:
$ cat file_1 file_2
I get:
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
echo
插入新行:for f in file1 file2 file3; do cat "$f"; echo; done > output
这是我在Ubuntu 12.04上使用bash
shell时观察到的情况。
$ echo "1 2 3" > file1
$ echo "a b c" > file2
$ cat file1 file2
1 2 3
a b c
分离不同的行。
看起来echo
命令确保适当终止的字符串被写入两个文件。
echo
会自动添加一个换行符。 - Maxim Egorushkinecho
输出一个新行,并将其放在两个文件之间,如下所示:echo | cat file1 - file2
你的file1
文件末尾缺少换行符。因此,当你使用cat
命令将它们连接起来时,没有换行符将file1
和file2
分隔开。
你需要修改file1
文件以包含一个换行符或以其他方式插入它。