如何在Linux中垂直地查看文件?

3

我有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 
5个回答

5

尝试

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个文件,但是我有超过2个文件,我不知道如何修改这个命令。 - shaq
@shaq更新了你的案例的答案。 - Maxim Egorushkin

2
如果您有超过2个文件,可以使用shell循环,并使用echo插入新行:
for f in file1 file2 file3; do cat "$f"; echo; done > output

0

这是我在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 Egorushkin

0
如果你只有两个文件,你可以使用echo输出一个新行,并将其放在两个文件之间,如下所示:
echo | cat file1 - file2

对不起,有多个文件,我在问题中没有提到。 - shaq

0

你的file1文件末尾缺少换行符。因此,当你使用cat命令将它们连接起来时,没有换行符将file1file2分隔开。

你需要修改file1文件以包含一个换行符或以其他方式插入它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接