我想用 awk 读取一个 csv 文件。 csv 文件包含 5 列,c1、c2、c3、c4、c5。我想判断c1,c2,c3一起是唯一的,像数据库约束。
这里是示例 csv 文件:
c1,c2,c3,c4,c5
1886,5141,11-2011,62242.57,52.71
1886,5140,11-2011,63763.75,52.22
23157666,4747,11-2011,71.07,83.33
1886,5141,11-2011,4645.45,2135.45
此时row1和row4违反唯一约束,提示错误信息。
如何用awk实现呢?非常感谢。
最佳答案
awk -F, 'line[$1,$2,$3] {printf "Error: lines %d and %d collide\n", line[$1,$2,$3], NR; next} {line[$1,$2,$3] = NR}'
关于shell - awk 操作csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708709/