仅按一个键排序文件

时间:2017-09-20 00:35:05

标签: bash sorting

我有大量的日志文件,包含来自多个来源的输入,每行以前缀为主机名。日志是许多主机并行发生的操作的输出,因此日志有些混乱。

我想要做的是按主机名对日志进行排序,而 nothing 除外,这样每个服务器的事件仍然显示自然顺序。下面的排序文档似乎暗示-k1,1 完成此操作,但仍会导致行完全排序。

   -k, --key=POS1[,POS2]
          start a key at POS1 (origin 1), end it at POS2 (default end of line)

我制作了一个简单的测试文件:

1 grape
1 banana
2 orange
3 lemon
1 apple

,预期输出为:

1 grape
1 banana
1 apple
2 orange
3 lemon

但观察到的输出是:

$ sort -k1,1 sort_test.txt
1 apple
1 banana
1 grape
2 orange
3 lemon

1 个答案:

答案 0 :(得分:2)

sort -s -k 1,1 sort_test.txt

-s禁用'last-resort'排序,它对不属于指定键的所有内容进行排序。