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
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
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.)
Tags file-comparison