我有两个文件 file1.csv(20 列 410k 行)和 data.csv(4 列 1800 行)。我想要做的是,如果 data.csv 第一列与 file1.csv 第二列匹配,用 data.csv 第三列中的值覆盖 file1.csv 中的第一列。如果没有匹配保留现有值...
此命令将列出匹配的行,但无法正确获取替换部分。
awk -F"," 'BEGIN{OFS=","} {if (NR==FNR) {a[$1]=$3; next} if ($2 in a) print}' data.csv file1.csv
> file3.csv
谢谢!
如果我理解正确,你想要:
你快到了。您只需要设置
$1
为从第一个文件中保存的任何内容,然后打印该行。