我有file1就是这样,XLOC从1 - ~20 000
XLOC_013407 black 0.7015504883
XLOC_014674 black -0.6747375792
XLOC_018639 black -0.654810098
XLOC_014606 black -0.6262770784
XLOC_015975 black -0.6242929154
和file2是这样的,但是第一个文件的一小部分,但没有颜色值
XLOC_000509
XLOC_000556
XLOC_000657
XLOC_018639
XLOC_005521
XLOC_005129
XLOC_001253
我想使用file2作为参考,打印file1的第1列和第2列中的相应值以产生输出
像
XLOC_018639 black
我知道基本的AWK,这是我认为我需要的伪代码
awk 'if $1 (from file2) == $1 (from file1) {print $1,$2 (from file1)}' > outfile.txt
显然这不会像以上一样有效 - 有人可以帮助我将其变成正确的代码吗?
谢谢!
答案 0 :(得分:2)
既然你提到file2
很小,你会写:
awk 'NR==FNR{a[$1];next}$1 in a{print $1, $2}' file2 file1
使用NR==FNR
我们将总记录索引与当前文件记录索引进行比较,因此仅对第一个文件(file2
)执行第一个块。由于我们使用了next
,因此我们跳过剩下的脚本,因此只对第二个文件执行另一个块(file1
)