Anexar linhas do arquivo csv a outro com base nas correspondências da coluna 1

0

Eu tenho 2 arquivos .csv, file1.csv e file2.csv. Digamos que uma linha do arquivo2.csv tenha o mesmo primeiro campo que uma linha do arquivo1.csv. Eu gostaria da linha completa do arquivo1.csv para substituir a linha completa do arquivo2.csv.     Eu tentei um script para excluir a linha do arquivo2 e adicionar a linha do arquivo1. Eu tentei awk as linhas do arquivo2 que não contêm a correspondência e, em seguida, adicionar de file1but falhou.

arquivo1.csv:

1,2,3
2,3,4
3,4,5

arquivo2.csv

6,7,8
7,8,9
1,9,0

Resultado desejado:

6,7,8
7,8,9
1,2,3
    
por Trevor Martin 30.09.2018 / 20:12

1 resposta

1

Para os arquivos de entrada simples que você publicou:

$ awk -F, 'NR==FNR {a[$1]=$0; next} $1 in a {$0=a[$1]} 1' file1.csv file2.csv
6,7,8
7,8,9
1,2,3

Observe que, em geral, o formato CSV permite separadores incorporados entre aspas e outros itens que podem tornar um simples script Awk inadequado

    
por 30.09.2018 / 21:36