shell - awk 操作csv文件

标签 shell csv awk

我想用 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/

相关文章:

visual-studio - 数据驱动的 MS 使用分号分隔符测试 CSV

python - 使用 for 循环写入 csv

python - 使用 'awk'/Python 删除重复的功能 block (通用解决方案)

linux - -f 、 -s 选项如何与 uniq 命令一起使用?

linux - 从管道输入中 grep 多个搜索模式并递增地报告单个计数

string - 如何在 Autohotkey 中拆分制表符分隔的字符串?

linux - 在linux中分析时间跟踪数据

shell - 如何在 Perl 命令中扩展 shell 变量

shell - 使用分隔符进行剪切时获取第一个和最后一个出现的位置

regex - 尝试按 awk 中的特定列值打印行