我有两个文件,请注意我想使用最后一列,如引用:
1)第一档:
[robert@10-2Fontes]$ head rxid
0.086297 id 0 udp 767 0
0.091866 id 1 udp 760 1
0.097236 id 2 udp 733 2
0.103616 id 3 udp 869 3
0.110956 id 4 udp 1000 4
0.459247 id 9 udp 754 54
注意:此文件有64196行。
2)第二个文件(参考):
[robert@10-2Fontes]$ head pumba.txt
0.086297 0
0.091866 1
0.097236 2
0.103616 3
0.110956 4
0.118285 5
0.125615 6
0.130077 7
0.459247 54
此文件是一个索引,有64677行,
3)我想要一个第三个文件,它在文件2中搜索对应的号码并将相关的号码放在第一个文件的最后一列中。这样的事情:
0.086297 id 0 udp 767 0 0.086297
0.091866 id 1 udp 760 1 0.091866
0.097236 id 2 udp 733 2 0.097236
0.103616 id 3 udp 869 3 0.103616
0.110956 id 4 udp 1000 4 0.110956
...
答案 0 :(得分:2)
怎么样:
awk 'NR==FNR{a[$2]=$1;next}$6 in a{print $0,a[$6]}' file2 file1 > file3
答案 1 :(得分:0)
以防万一,您甚至可以将第一列作为参考,然后您不需要最后一列进行参考检查。我的意思是假设你有
文件1:
0.086297 id 0 udp 767
0.091866 id 1 udp 760
0.097236 id 2 udp 733
0.103616 id 3 udp 869
0.110956 id 4 udp 1000
0.459247 id 9 udp 754
和file2:
0.086297 0
0.091866 1
0.097236 2
0.103616 3
0.110956 4
0.118285 5
0.125615 6
0.130077 7
0.459247 54
您仍然可以根据第一列合并它们
awk 'NR==FNR{a[$1]=$0; next;}$1 in a {print a[$1]" "$2}' file1.txt file2.txt
.NR==FNR{a[$1]=$0; next;}
对于第一个文件,第一列将用作存储整行的索引,下一部分将被跳过
对于第二个文件,如果数组$1
中存在a
第一列,则我们会将之前保存的行与第二列$2
最终输出
0.086297 id 0 udp 767 0
0.091866 id 1 udp 760 1
0.097236 id 2 udp 733 2
0.103616 id 3 udp 869 3
0.110956 id 4 udp 1000 4
0.459247 id 9 udp 754 54