сравнение полей в разных текстах (с повторяющимися полями)

сравнение полей в разных текстах (с повторяющимися полями)

У меня есть два текста. Один такой:

house structure
bank economy
rose animal
...

И еще один текст, содержащий более одной «метки» каждого слова:

house structure
bank economy
bank confort
rose plant
...

Мне нужно посчитать, совпадает ли второе поле первого текста с ОДНИМ ИЗ МНОГИХ второго поля второго текста. Например, слово "house" является структурой в первом и во втором тексте, поэтому +1. Слово "bank" первого текста является economy, и оно также ОДИН ИЗ МНОГИХ во втором тексте, поэтому также +1. Слово "rose" помечено как animal в первом тексте, но не во втором, поэтому +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

Связанный контент