comparando campos em textos diferentes (com campos repetidos)

comparando campos em textos diferentes (com campos repetidos)

Eu tenho dois textos. Um assim:

house structure
bank economy
rose animal
...

E outro texto que contém mais de um “rótulo” de cada palavra:

house structure
bank economy
bank confort
rose plant
...

O que preciso é contar se o segundo campo do primeiro texto é igual a UM DOS MUITOS do segundo campo do segundo texto. Por exemplo, a palavra “casa” é uma estrutura na primeira e também na segunda, então +1. A palavra "banco" do primeiro texto é economia, e também é UM DOS MUITOS no segundo texto, então +1 também. A palavra “rosa” é rotulada como animal no primeiro e não no segundo, então +0.

No final, preciso de vários pontos. Qual é a maneira mais fácil de fazer isso? Obrigado pela ajuda, está um pouco confuso.

Responder1

Não é uma resposta do Linux, mas para esse tipo de coisa eu portaria os dois arquivos para o Excel e usaria vlookup e/ou count para compará-los.

Responder2

Com base no seu exemplo, parece que você deseja descobrir se uma determinada linha do primeiro arquivo está presente ou não no segundo arquivo. Se for esse o caso, você pode fazer

grep -c -f file1 file2

Neste contexto, observe tambémesseeesseposte se a velocidade for um problema.

Responder3

Que tal

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

ou se você quiser uma contagem 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

informação relacionada