创建一个包含2列的文件,每个文件来自不同的文件

时间:2013-02-14 09:51:23

标签: linux perl awk

如何使用perl或awk获取以下输出或者是否可以在linux命令中使用?

文件1:

1
2
2
4

file2的:

5
6
7
8

期望的输出:

1   5
2   6
2   7
4   8

4 个答案:

答案 0 :(得分:5)

使用命令paste

paste  file1  file2

答案 1 :(得分:2)

更灵活的解决方案,当文件中的行不是固定宽度时,将使用pr

$ pr -mtw 10 file1 file2
1    5
2    6
3    7
4    8

file1更改为包含可变宽度行:

$ cat file1
The number 1
two
3
The last number is the number four

# With pr two columns are output    
$ pr -mt  file1 file2
The number 1                        5
two                                 6
3                                   7
The last number is the number four  8

# Paste simply inserts a tab which doesn't format the output in two columns
$ paste file1 file2
The number 1    5
two     6
3       7
The last number is the number four      8

答案 2 :(得分:2)

更确切地说:

paste命令只打印出来。要将其保存到新文件,命令应为:

paste file1 file2 > outputFile

outputFile现在包含两列。

答案 3 :(得分:0)

您也可以使用GNU parallel执行此操作:

parallel --xapply echo '{1}' '{2}' :::: file1 :::: file2