比較不同文字中的欄位(具有重複欄位)

比較不同文字中的欄位(具有重複欄位)

我有兩段文字。像這樣的一個:

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

相關內容