我们正在寻找关键列"名称"
文件1是
id|name|age|sal
1|AAA|30|2000
2|BBB|40|3000
4|CVC|32|2000
5|DDD|25|2000
文件2是
name
FFF
GGG
AAA
DDD
RRR
输出为
文件3(Maching)
id|name|age|sal
1|AAA|30|2000
5|DDD|25|2000
文件4(不加工)
id|name|age|sal
2|BBB|40|3000
4|CVC|32|2000
请使用Unix给我输出
感谢您的帮助。
答案 0 :(得分:-1)
您可以使用awk过滤器
$ awk 'FNR==NR{a[$1];next}($1 in a){++a[$1]}
END{for(i in a){print i" "a[i]}}' file1.txt 1.txt 2.txt
put 1
get 1
move 2
其中:
FNR==NR{a[$1];next}:
处理file1.txt
时,我们标记为
在关联数组$1
中出现a
。($1 in a){++a[$1]}:
处理1.txt
和2.txt
时,我们会检查
如果$1
存在于关联数组a
中,如果是,则增加
按1计算。a
,打印密钥(首先
文件中的字段)及其值(1.txt
和中的出现次数
2.txt
)。参考: https://unix.stackexchange.com/questions/125762/compare-first-column-in-different-files