0

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

文件1:

1
2
2
4

文件2:

5
6
7
8

期望的输出:

1   5
2   6
2   7
4   8
4

4 回答 4

5

用命令paste

paste  file1  file2
于 2013-02-14T09:55:09.413 回答
2

更准确地说:

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

paste file1 file2 > outputFile

outputFile现在包含两列。

于 2013-02-14T10:22:21.843 回答
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
于 2013-02-14T10:01:28.310 回答
0

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

parallel --xapply echo '{1}' '{2}' :::: file1 :::: file2
于 2013-02-14T10:25:44.383 回答