【问题标题】:Unix - Sorting Text file content based on first two column valuesUnix - 根据前两列值对文本文件内容进行排序
【发布时间】:2020-04-20 11:54:13
【问题描述】:

我正在尝试根据文件中可用的前两列值对文件t1.txt 的内容进行排序。如果前两列值的组合相同,则应将行保持不变,并且不应考虑对整行进行排序。请在下面找到我的发现。

使用的查询:

猫 t1.txt |排序 -nk 1,2

文件 - t1.txt

1993-04-11 07:25:16,668 INFO  b: [Cool: read-189231]: Setting
1993-04-11 07:25:16,668 INFO  ab: [Cool: read-189231]: Completed
1993-04-11 07:25:22,768 INFO  ba: [Cool: read-190983]: Execute
1993-04-11 07:25:22,768 INFO  a: [Cool: read-190983]: Main

1993-01-04 06:24:23,148 INFO  b: [Cool: read-189231]: Setting
1993-01-04 06:24:23,148 INFO  ab: [Cool: read-189231]: Completed
1993-01-04 06:25:22,068 INFO  ba: [Cool: read-190983]: Execute
1993-01-04 06:25:22,068 INFO  a: [Cool: read-190983]: Main

预期输出:

1993-01-04 06:24:23,148 INFO  b: [Cool: read-189231]: Setting
1993-01-04 06:24:23,148 INFO  ab: [Cool: read-189231]: Completed
1993-01-04 06:25:22,068 INFO  ba: [Cool: read-190983]: Execute
1993-01-04 06:25:22,068 INFO  a: [Cool: read-190983]: Main

1993-04-11 07:25:16,668 INFO  b: [Cool: read-189231]: Setting
1993-04-11 07:25:16,668 INFO  ab: [Cool: read-189231]: Completed
1993-04-11 07:25:22,768 INFO  ba: [Cool: read-190983]: Execute
1993-04-11 07:25:22,768 INFO  a: [Cool: read-190983]: Main

实际输出:

1993-01-04 06:24:23,148 INFO  ab: [Cool: read-189231]: Completed
1993-01-04 06:24:23,148 INFO  b: [Cool: read-189231]: Setting
1993-01-04 06:25:22,068 INFO  a: [Cool: read-190983]: Main
1993-01-04 06:25:22,068 INFO  ba: [Cool: read-190983]: Execute

1993-04-11 07:25:16,668 INFO  ab: [Cool: read-189231]: Completed
1993-04-11 07:25:16,668 INFO  b: [Cool: read-189231]: Setting
1993-04-11 07:25:22,768 INFO  a: [Cool: read-190983]: Main
1993-04-11 07:25:22,768 INFO  ba: [Cool: read-190983]: Execute

【问题讨论】:

    标签: sorting unix


    【解决方案1】:

    我认为您需要添加-s 选项来排序,以强制执行稳定排序。来自https://ss64.com/bash/sort.html

    最后,作为最后的手段,当所有键比较相等时(或者如果没有 完全指定了排序选项),“排序”比较整个 线。最后的比较采用“-r”全局选项。这 “-s”(稳定)选项禁用此最后的比较,以便 所有字段比较相等的行保留在其原始位置 相对顺序。如果没有指定字段或全局选项,'-s' 有 没有效果。

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      相关资源
      最近更新 更多