異なるテキスト内のフィールドの比較(重複フィールドを含む)

異なるテキスト内のフィールドの比較(重複フィールドを含む)

テキストが 2 つあります。1 つは次のようになります。

house structure
bank economy
rose animal
...

そして、各単語に複数の「ラベル」が含まれる別のテキスト:

house structure
bank economy
bank confort
rose plant
...

必要なのは、最初のテキストの 2 番目のフィールドが、2 番目のテキストの 2 番目のフィールドの 1 つと同じかどうかを数えることです。たとえば、「house」という単語は、最初のテキストでも 2 番目のテキストでも構造なので、+1 です。最初のテキストの「bank」という単語は economy で、2 番目のテキストでも 1 つなので、これも +1 です。「rose」という単語は、最初のテキストでは animal としてラベル付けされていますが、2 番目のテキストではそうではないので、+0 です。

結局、いくつかのポイントが必要です。最も簡単な方法は何ですか? 助言をありがとうございます。少し面倒です。

答え1

これは Linux の回答ではありませんが、このような場合には両方のファイルを Excel に移植し、vlookup や count を使用して比較します。

答え2

あなたの例から判断すると、最初のファイルの特定の行が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

関連情報