linux - linux sort 的奇怪行为

标签 linux sorting

我认为可能有一些解释,但我只是不明白为什么它会这样:

$ 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/

相关文章:

java冒泡排序问题

PHP - 将多个项目合并为一个

Java 数组排序 : Quick way to get a sorted list of indices of an array

java - 对 JSP scriptlet 中的选择框项目进行排序

python - 对数组中的值进行排序 : 'reverse' is an invalid keyword argument for this function

C Unix/Linux 编程 : Which type is md_addr_t?

Linux命令——给文件名添加时间元素

Linux平台下PHP gettext返回非utf8字符串

linux - Rqaspberry 在启动时运行 java 脚本并查看 cmd?

linux - 使用 libcurl 的服务不能在 Debian 上自动启动?