他のテキストのフィールド比較(重複フィールドを含む)

他のテキストのフィールド比較(重複フィールドを含む)

2つの段落のテキストがあります。このような:

house structure
bank economy
rose animal
...

別のテキストには、単語ごとに複数の「タグ」が含まれています。

house structure
bank economy
bank confort
rose plant
...

私にとって必要なのは、最初のテキストの2番目のフィールドが2番目のテキストの2番目のフィールドの複数のフィールドと等しいかどうかを計算することです。たとえば、「house」という単語は、最初と2番目の両方で構成されているため、+1です。最初のテキストの「bank」という単語は「economy」で、2番目のテキストの「ONE OF THE MANY」という単語でもあるため、+1にもなります。 「バラ」という単語は、最初は動物でタグ付けされたが、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

関連情報