比较不同文本中的字段(具有重复字段)

比较不同文本中的字段(具有重复字段)

我有两段文字。像这样的一个:

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

根据您的示例,您似乎想查找第一个文件中的给定行是否存在于第二个文件中。如果是这样的话,你可以这样做

grep -c -f file1 file2

在这种情况下,还可以看看如果速度是一个问题,请发布。

答案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

相关内容