假设我有两个文件
$A
a b
1 5
2 6
3 7
4 8
$B
a b
1 5
2 6
5 6
我的问题是,在Shell或Terminal中,如何计算A的第一列中B的第一列(1,2,5)的值总数(1,2,3) 4)? (答案是2(1,2)。
答案 0 :(得分:1)
以下awk
解决方案计算file1中file2的column1条目:
awk 'FNR==1{next}NR==FNR{a[$1]=$b;next}$1 in a{count++}END{print count}' file1 file2
2
FNR==1{next}
从两个文件中删除第一行。如果您的实际数据文件中没有标题字段(a b
),则可以将其删除。 NR==FNR{a[$1]=$b;next}
将整个第一个文件读入数组。如果您希望扩展解决方案以匹配两列,我在此处分配column2。如果您对column2不感兴趣,也可以a[$1]++
。不管怎样都不会受伤。 END
块中打印count变量。