我有两个.csv文件,分别是file1.csv和file2.csv。假设来自file2.csv的一行与file1.csv中的一行具有相同的第一个字段。我希望使用file1.csv中的完整行来替换file2.csv中的完整行。我尝试了一个脚本来删除file2中的行,并从file1中添加行。我尝试从file2中提取不包含匹配的行,然后从file1but添加失败。
file1.csv:
1,2,3
2,3,4
3,4,5
file2.csv
6,7,8
7,8,9
1,9,0
预期结果:
6,7,8
7,8,9
1,2,3
发布于 2018-09-30 11:36:15
对于您发布的简单输入文件:
$ 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
请注意,一般来说,CSV格式允许引用嵌入分隔符和其他可能使简单的Awk脚本不合适的地方。
https://unix.stackexchange.com/questions/472442
复制