【发布时间】:2017-05-24 22:29:06
【问题描述】:
我有一个包含多列的 csv 文件。有些可能在第 4 列 (col4) 上有重复。
我需要删除出现重复的整行并只保留 1 行。该行的决定是通过从 col1 中获取最高值来做出的。
下面是一个例子:
col1,col2,col3,col4
1,x,a,123
2,y,b,123
3,y,b,123
1,z ,c,999
在第 1 行和第 2 行和第 3 行中发现重复,只应保留第三行,因为 col1(row3) > col1(row2) > col1(row1)。
现在这段代码删除 col4 中的重复项而不查看 col1
awk '!seen[$4]++' myfile.csv
我想添加一个条件来检查 col1 的每个重复项并删除 col1 中值最低的那些并保留最高值 n col1 的行
输出应该是:
col1,col2,col3,col4
3,y,b,123
1,z,c,999
谢谢!
【问题讨论】:
-
不,这不清楚,请您将更多信息和示例 Input_file 和预期输出放入帖子中,以便大家在这里提供帮助。
-
有输入输出示例请仔细阅读。
标签: csv unix duplicates