我有大量的日志文件,包含来自多个来源的输入,每行以前缀为主机名。日志是许多主机并行发生的操作的输出,因此日志有些混乱。
我想要做的是按主机名对日志进行排序,而 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
答案 0 :(得分:2)
sort -s -k 1,1 sort_test.txt
-s禁用'last-resort'排序,它对不属于指定键的所有内容进行排序。