仅从另一个文件添加一个文件中的现有单词并删除其余内容(unix)?

仅从另一个文件添加一个文件中的现有单词并删除其余内容(unix)?

我有两个文本(频率计数 dic),我想通过在第二个文件中仅添加相同的单词来增加第一个文件的频率计数。

例如我的文件1

100  man 
522  women  
600  kids 
600  football 

我的文件2

100 man 
300 women 
600 kids 
900 football
500 fifa 
500 world 

我想要这个输出

200 man
822 women 
1200 kids
1500 football 

第二个文件中第一个文件中未存在的单词将被删除。

500 fifa  # removed 
500 world # removed  

我尝试使用 sed/cat 并加入 cmd 但没有得到我想要的结果

答案1

这是一个 awk 方法:

$ awk 'NR==FNR{a[$2]=$1; next}($2 in a){print $1+a[$2],$2}' file1 file2
200 man
822 women
1200 kids
1500 football

如果您还想包含出现在file1但不在 中的单词file2,请使用:

awk 'NR==FNR{a[$2]=$1; next}{print $1+a[$2],$2}' file2 file1 

相关内容