[英]Inner join two files based on one column in unix when row names don't match with sort
[英]AWK, Unix command: How to match two files using corresponding first column in unix command
我有两个文件,第一个具有单列(具有重复的ID),第二个文件是三列文件,第一列是与第一个文件相同但唯一编号相同的ID,我想打印第二个文件中与第一个文件相对应的其余两列ID。
示例:第一个文件:
IDs
1
3
6
7
11
13
13
14
18
20
第二档:
IDs Freq Status
1 1 JD611
2 1 QD51
3 2
5
6
7 2
11 2
13 2
14 2
所需的输出
1 1 JD611
3 2
6
7 2
11 2
13 2
13 2
14 2
18
20
您可以使用以下awk
:
awk 'NR==FNR{a[$1]=$2 FS $3; next} {print $1, a[$1]}' f2 f1
要跳过标题行,
awk 'FNR==1{next} NR==FNR{a[$1]=$2 FS $3; next} {print $1, a[$1]}' f2 f1
如果第二个文件有多列,
awk 'NR==FNR{c=$1; $1=""; a[c]=$0; next} {print $1, a[$1]}' f2 f1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.