我有如下数据:
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
由于最后两列的性质,它们的值在一整天都在变化,它们的值会定期重复.通过对我所需输出(下面)中概述的方式进行分组,我可以在每次值发生变化时查看(第一列中的enoch时间).有没有办法实现下面显示的所需输出:
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
我不希望通过后两列对数据进行排序.但是,由于第一个是纪元时间,因此可以按第一列进行排序.
解决方法:
你不能用uniq设置分隔符,它必须是空格.在tr的帮助下你可以
tr ',' ' ' <file | uniq -f1 | tr ' ' ','
1493992429103289,207.55,207.5
1493992429104491,207.6,207.55
1493992429110551,207.55,207.5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。