Compare dois arquivos e imprima correspondências no primeiro arquivo adicionando uma coluna extra

0

Eu tenho dois arquivos diferentes com uma coluna cada. O arquivo 1 tem mais informações e eu quero um comando para pesquisar as partidas contra o arquivo 2 e, em seguida, retornar o arquivo original 1 com uma coluna extra dizendo por exemplo "match"

Arquivo 1

Mg_134
Mg_560

Arquivo 2

Mg_1
Mg_134

Saída

Mg_134 match
Mg_560

Eu tentei usar join e grep -Ff, mas gostaria de ter essa saída específica. Obrigado

    
por Paul 23.11.2016 / 00:05

2 respostas

1

Essa deve ser uma tarefa padrão para awk

awk 'NR==FNR {a[$1]++; next} $1 in a {$2="match"}1' File2 File1
Mg_134 match
Mg_560
    
por 23.11.2016 / 00:19
1

Se os arquivos estiverem classificados, a ferramenta padrão para isso é comm :

comm -2 file1 file2

A opção -2 é para suprimir as linhas de impressão exclusivas de file2 .

Ele não especifica o formato exato que você especificar. No entanto, você pode analisá-lo para fornecer essa saída, se desejar. (Ferramentas padrão e formatos padrão geralmente são bem pensados.)

    
por 23.11.2016 / 00:36