comparar campos en diferentes textos (con campos repetidos)

comparar campos en diferentes textos (con campos repetidos)

Tengo dos textos. Uno como este:

house structure
bank economy
rose animal
...

Y otro texto que contiene más de una "etiqueta" de cada palabra:

house structure
bank economy
bank confort
rose plant
...

Lo que necesito es contar si el segundo campo del primer texto es el mismo que UNO DE LOS MUCHOS del segundo campo del segundo texto. Por ejemplo, la palabra "casa" es una estructura en la primera y también en la segunda, por lo que +1. La palabra "banco" del primer texto es economía, y también es UNO DE LOS MUCHOS en el segundo texto, por lo que también +1. La palabra "rosa" está etiquetada como animal en la primera y no en la segunda, por lo que +0.

Al final necesito una serie de puntos. ¿Cuál es la forma más sencilla de hacerlo? Gracias por la ayuda, es un poco complicado.

Respuesta1

No es una respuesta de Linux, pero para este tipo de cosas portaría ambos archivos a Excel y luego usaría vlookup y/o contaría para compararlos.

Respuesta2

Según su ejemplo, parece que desea saber si una línea determinada del primer archivo está presente en el segundo archivo. Si ese es el caso, puedes hacer

grep -c -f file1 file2

En este contexto, observe tambiénesteyestepublicar si la velocidad es un problema.

Respuesta3

Qué tal si

awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2' text1 text2
house structure
bank economy

o si quieres un conteo real

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

información relacionada