【发布时间】:2017-05-09 12:11:41
【问题描述】:
我有如下数据:
1493992429103289,207.55,207.5
1493992429103559,207.55,207.5
1493992429104353,207.55,207.5
1493992429104491,207.6,207.55
1493992429110551,207.55,207.5
由于最后两列的性质,它们的值在一天中会发生变化,并且它们的值会定期重复。通过对我想要的输出(如下)中概述的方式进行分组,我可以查看每次它们的值发生变化时(第一列中的以诺时间)。有没有办法实现如下所示的所需输出:
1493992429103289,207.55,207.5
1493992429104491,207.6,207.55
1493992429110551,207.55,207.5
所以我通过后两列合并数据。但是,合并并不是完全唯一的(从 207.55 可以看出,207.5 正在重复)
我试过了:
uniq -f 1
但是输出只给出了第一行并且没有通过列表继续
下面的 awk 解决方案不允许再次输出之前发生的事件,因此给出了输出(在 awk 代码下方):
awk '!x[$2 $3]++'
1493992429103289,207.55,207.5
1493992429104491,207.6,207.55
我不希望按后两列对数据进行排序。但是,由于第一个是纪元时间,所以可能按第一列排序。
【问题讨论】:
-
如果最后一列可以重复?您认为它还能如何分组?
-
您的预期输出有何意义?没有任何逻辑可以适合您得出预期输出的方式
-
由于最后两列的性质,它们的值全天都在变化,并且它们的值会定期重复。通过对所需输出中概述的方式进行分组,我可以查看每次它们的值发生变化时(第一列中的以诺时间)
-
将此作为问题的一部分进行更新