【问题标题】:Sorting by Field UNIX按字段排序 UNIX
【发布时间】:2016-02-25 23:46:33
【问题描述】:

我有个问题,不知道你能不能帮帮我。我所要做的就是按 Hour 元素对这些格式进行排序。但该元素采用以下格式:

192.168.100.200 - unauthenticated 25/Sep/2015:18:52:18 -0500 
192.168.100.200 - unauthenticated 29/Sep/2015:14:20:41 -0500 
192.168.100.200 - unauthenticated 29/Sep/2015:14:43:16 -0500 

192.168.100.200 - unauthenticated 29/Sep/2015:14:44:04 -0500 
192.168.100.200 - unauthenticated 29/Sep/2015:15:30:50 -0500 
192.168.100.200 - unauthenticated 30/Sep/2015:13:53:04 -0500 
192.168.100.200 - unauthenticated 30/Sep/2015:14:07:48 -0500 

我必须按字段14:07:48 排序,我已经读过我可以用这个排序:

sort -t':'

但真正的问题是我必须打印所有排序的行。

我希望你能帮助我。

问候

【问题讨论】:

标签: linux sorting unix awk solaris


【解决方案1】:

您可以使用-k 指定要排序的关键字段列表。如果您想按时间排序并忽略日期部分,您可以这样做:

sort -t: -k2,2 -k3,3 -k4,4 -n <input file>

这将使用 : 作为标记分隔符,然后按 -n 排序,将字段 2(小时)与其他小时进行数字比较,然后将字段 3(分钟)与其他分钟进行比较,然后将字段 4(秒和时区)相对于其他第四个字段。

【讨论】:

    【解决方案2】:
    sort -t: -nk2 
    

    您想按分隔符排序,(-t:) 数字 (-n) 并使用第二个键 (k2)。

    您可以在此之后调用文件名或通过管道传递给它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 2012-11-08
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多