【问题标题】:awk max value of column two for dates in column oneawk 第一列中日期的第二列最大值
【发布时间】:2014-08-06 16:41:11
【问题描述】:

我正在尝试仅打印第一列中日期的第二列最大值。

我的文件是:

2014-04-09,135303
2014-04-09,416400
2014-04-15,143684
2014-04-15,156011
2014-04-15,184406
2014-04-16,1123083
2014-04-16,167486
2014-04-16,862196
2014-04-17,963023
2014-04-19,583844

所需输出:

2014-04-09,416400
2014-04-15,184406
2014-04-16,1123083
2014-04-17,963023
2014-04-19,583844

我尝试了排序但不工作:

cat file|sort -k2 -r | sort --unique --stable -k1

请建议如何使用 awk 或 sort 来完成

【问题讨论】:

    标签: linux sorting awk


    【解决方案1】:
    kent$  awk -F, '{a[$1]=$2>a[$1]?$2:a[$1]}END{for(x in a)print x "," a[x]}' file
    2014-04-15,184406
    2014-04-16,1123083
    2014-04-17,963023
    2014-04-09,416400
    2014-04-19,583844
    

    如果您想要按日期排序的结果,请将上面的行通过管道传递给sort

    awk -F, '{a[$1]=$2>a[$1]?$2:a[$1]}END{for(x in a)print x "," a[x]}' f|sort 
    2014-04-09,416400
    2014-04-15,184406
    2014-04-16,1123083
    2014-04-17,963023
    2014-04-19,583844
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多