Eu tenho dois arquivos file1.csv (20 colunas 410k linhas) e data.csv (4 colunas 1800 linhas). O que estou tentando fazer é se data.csv 1ª coluna corresponder a file1.csv 2ª coluna substituir a 1ª coluna em arquivo1.csv com valor de data.csv 3ª coluna. Se não houver correspondência, mantenha o valor existente...
este comando listará as linhas correspondentes, mas não conseguiu obter a peça de substituição corretamente.
awk -F"," 'BEGIN{OFS=","} {if (NR==FNR) {a[$1]=$3; next} if ($2 in a) print}' data.csv file1.csv
> file3.csv
Obrigado!
Se entendi bem, você quer:
Você estava quase lá. Você só precisa definir
$1
para ser o que você salvou do primeiro arquivo e depois imprimir a linha.