使用 awk 作为 vlookup 从两个文件打印值
Print values from both files using awk as vlookup
我有两个文件,file1:
1 I0626_all 0 0 1 1
2 I0627_all 0 0 2 1
3 I1137_all_published 0 0 1 1
4 I1859_all 0 0 2 1
5 I2497_all 0 0 2 1
6 I2731_all 0 0 1 1
7 I4451_all 0 0 1 1
8 I0626 0 0 1 1
9 I0627 0 0 2 1
10 I0944 0 0 2 1
和文件 2:
I0626_all 1 138
I0627_all 1 139
I1137_all_published 1 364
I4089 1 365
AfontovaGora2.SG 1 377
AfontovaGora3_d 1 378
最后我要
1 I0626_all 138
2 I0627_all 139
3 I1137_all_published 364
我尝试使用:
awk 'NR==FNR{a[]=;next} {b[]} {print ,,b[]}' file2 file1
但是没用。
你可以使用这个awk
:
awk 'NR == FNR {map[] = $NF; next} in map {print , , map[]}' file2 file1
1 I0626_all 138
2 I0627_all 139
3 I1137_all_published 364
我有两个文件,file1:
1 I0626_all 0 0 1 1
2 I0627_all 0 0 2 1
3 I1137_all_published 0 0 1 1
4 I1859_all 0 0 2 1
5 I2497_all 0 0 2 1
6 I2731_all 0 0 1 1
7 I4451_all 0 0 1 1
8 I0626 0 0 1 1
9 I0627 0 0 2 1
10 I0944 0 0 2 1
和文件 2:
I0626_all 1 138
I0627_all 1 139
I1137_all_published 1 364
I4089 1 365
AfontovaGora2.SG 1 377
AfontovaGora3_d 1 378
最后我要
1 I0626_all 138
2 I0627_all 139
3 I1137_all_published 364
我尝试使用:
awk 'NR==FNR{a[]=;next} {b[]} {print ,,b[]}' file2 file1
但是没用。
你可以使用这个awk
:
awk 'NR == FNR {map[] = $NF; next} in map {print , , map[]}' file2 file1
1 I0626_all 138
2 I0627_all 139
3 I1137_all_published 364