合并两个文件(使用行号而不是公共字段)

时间:2012-12-12 06:22:31

标签: linux shell sed awk

输入file1:

1
5
6

输入文件2:

4.5
6.7
9.9

输出:

1  4.5
5  6.7
6  9.9

我尝试了join,但由于没有共同字段,因此无效。有没有人有这方面的想法?

2 个答案:

答案 0 :(得分:11)

我认为您正在寻找paste命令而不是join,根据以下记录:

pax> cat file1
1
5
6

pax> cat file2
4.5
6.7
9.9

pax> paste file1 file2
1   4.5
5   6.7
6   9.9

有关详细信息,请参阅友好邻居man页面(或info页面),例如使用-d选择 TAB 以外的分隔符,或{ {1}}按顺序而不是并行处理文件。

-s

答案 1 :(得分:2)

awk 'FNR==NR{a[NR]=$1;next}{print a[FNR],$0}' file2 file1

测试如下:

> cat file2
a 
b
c
> cat file1
1 
100
90
> awk 'FNR==NR{a[NR]=$1;next}{print a[FNR],$0}' file2 file1
a 1 
b 100
c 90