我认为可能有一些解释,但我只是不明白为什么它会这样:
$ sort -k 2 -t "|" tests/resources/event1.txt
20180611|10|2|edf|8|abc
20180611|1|2|edf|1|abc
20180611|15|2|edf|15|abc
20180611|2|2|edf|2|abc
20180611|5|2|edf|1|abc
20180611|6|2|edf|1|abc
20180611|7|2|edf|8|abc
20180611|8|2|edf|3|abc
那么为什么 10 出现在 1 之前,然后 1 出现在 15 之前呢?我应该有 10、15、1 或 1、10、15,对吗?为什么搞成这样?
最佳答案
来自人工排序
:
-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of line)
您正在第二列开始一个键,但它会继续到行尾。 因此,对于您询问的 3 行,关键是:
102edf8abc
12edf1abc
152edf15abc
我看来已经排序了。
也许您想要-k 2,2
?
关于linux - linux sort 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50832833/