【发布时间】:2013-02-22 07:43:49
【问题描述】:
我有一个 CSV 文件,其中包含大量价格不同的重复项目,并且该文件已排序。 我想比较所有重复的项目并查看哪个重复项目的价格最低,然后将价格最低的重复项目导出到新文件 字段用逗号分隔 所以原始 CSV 文件:
01,香蕉,7.00
01,香蕉,6.00
01,香蕉,7.00
01,香蕉,9.00
02,芒果,5.00
02,芒果,3.00
02,芒果,3.00
02,芒果,4.00
输出 CSV 文件应该是
01,香蕉,6.00
02,芒果,3.00
我目前在 bash 中编码,想知道 awk 是否可以做到这一点。
【问题讨论】:
-
使用awk的琐碎,你试过什么?
-
好吧,我一直在搜索并尝试过这个:awk '!x[$1,$2]++' FS=":" file.txt
-
但这会比较两列并检查它们是否相同,但显然这不是我的目的,我只是想找出哪个重复项更小
-
这只是计算重复,而不是比较价格。而
FS=":"表示各列之间用:分隔,而不是空格。 -
所以编写一个脚本,将
$3保存在关联数组中,并比较新的和保存的是否更小。
标签: bash csv awk duplicates