comparando campos em textos diferentes (com campos repetidos)

0

Eu tenho dois textos. Um como este:

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 eu preciso é contar se o segundo campo do primeiro texto é o mesmo de UM DOS MUITOS do segundo campo do segundo texto. Por exemplo, a palavra "casa" é uma estrutura no primeiro e também no segundo, portanto, +1. A palavra "banco" do primeiro texto é economia, e também é UM DOS MUITOS no segundo texto, portanto, +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, é um pouco confuso.

    
por cloudy_fog 23.09.2016 / 21:10

3 respostas

1

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

    
por 23.09.2016 / 21:57
1

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

grep -c -f file1 file2

Nesse contexto, veja também este e este post se a velocidade for um problema.

    
por 23.09.2016 / 22:19
1

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
    
por 24.09.2016 / 02:16