Como comparar várias colunas de um arquivo com uma coluna de outra e exibir correspondências do segundo arquivo?

1

Eu tenho dois arquivos como este:

Arquivo 1

apple fruit 10 4
strawberry fruit 22 11
berry fruit 33 33
ball toy 1 12
straw thing 2 33

Arquivo 2

strawberry straw berry
rawberry raw berry

Quero comparar a coluna 1 do arquivo 2 com a coluna 1 do arquivo 1, a coluna 2 do arquivo 2 com a coluna 1 do arquivo 1, a coluna 3 do arquivo 2 com a coluna 1 do arquivo 1. Se a correspondência for encontrada, desejo para exibir todas as três linhas correspondentes do arquivo 1.

Aqui, a saída deve ser:

strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33

Como posso fazer isso?

    
por user110327 10.11.2016 / 08:03

1 resposta

2
$ awk 'NR==FNR{a[$1]=$0} $1 in a && $2 in a && $3 in a{print a[$1] ORS a[$2] ORS a[$3]}' file1 file2
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
  • Salvar linhas com base na primeira coluna de file1 e imprimir linhas correspondentes se todas as três colunas de file2 lines corresponderem
por 10.11.2016 / 08:26