GNU sort - 用于比较的默认算法是什么?

alm*_*now 2 linux sorting gnu gnu-sort

我需要帮助理解 GNU 排序的默认算法。我认为它进行了字典排序,但是我发现了一些与此不符的行为,例如以下字符串:

alex.
alex.a
alex.Z
alexa
alex0
alexZ
alex.~
alex
alex.|
alex.}
alex.abc
Run Code Online (Sandbox Code Playgroud)

并使用类似的排序在外壳上对它们进行排序 echo 'stuff' | sort

这是我得到的结果:

alex
alex.
alex.~
alex.|
alex.}
alex0
alexa
alex.a
alex.abc
alexZ
alex.Z
Run Code Online (Sandbox Code Playgroud)

我想不通为什么alex0alexa之间出现在alex.}alex.a

谁可以给我解释一下这个?

vkr*_*ams 5

GNU Sort 实现了归并排序。您可以在超级用户线程中找到完整的答案。https://superuser.com/questions/234054/unix-sort-algorithm-implementation