![比较不同文本中的字段(具有重复字段)](https://linux22.com/image/95101/%E6%AF%94%E8%BE%83%E4%B8%8D%E5%90%8C%E6%96%87%E6%9C%AC%E4%B8%AD%E7%9A%84%E5%AD%97%E6%AE%B5%EF%BC%88%E5%85%B7%E6%9C%89%E9%87%8D%E5%A4%8D%E5%AD%97%E6%AE%B5%EF%BC%89.png)
我有两段文字。像这样的一个:
house structure
bank economy
rose animal
...
另一篇文本包含每个单词的多个“标签”:
house structure
bank economy
bank confort
rose plant
...
我需要的是计算第一个文本的第二个字段是否与第二个文本的第二个字段中的多个字段相同。例如,单词“house”在第一个和第二个中都是一个结构,所以+1。第一个文本中的“bank”一词是“economy”,它也是第二个文本中的“ONE OF THE MANY”,所以也+1。 “玫瑰”这个词在第一个中被标记为动物,而不是在第二个中被标记为动物,所以+0。
最后我需要几点。最简单的方法是什么?感谢您的帮助,有点乱。
答案1
这不是 Linux 的答案,但对于这种事情,我会将这两个文件移植到 Excel 中,然后使用 vlookup 和/或 count 来比较它们。
答案2
答案3
怎么样
awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2' text1 text2
house structure
bank economy
或者如果您想要实际计数
awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2 {c[$1]++} END {for (i in c) print i, c[i]}' text1 text2
house 1
bank 1