Linux的sort命令常用于文本文件排序。然后,其中却暗藏陷阱。 先准备一个测试文本test.txt ```txt A D c B ``` 注意:第3行行前有空格。 执行默认排序,很多系统上排序结果如下: ```bash [root@local ~]# sort test.txt A B c D ``` 而在另一些系统上,排序可能如下: ```bash [root@local ~]# sort test.txt c A B D ``` 这是因为,sort默认会使用系统当前locale进行排序。如果希望sort排序结果稳定,需要强制指定locale。方法如下: ```bash [root@local ~]# export LC_ALL=C; sort test.txt c A B D [root@local ~]# export LC_ALL=en_US; sort test.txt A B c D ``` # 参考 - [为什么不同的 LC_ALL 设定会导致 sort 命令输出顺序不一样?](https://feichashao.com/lc_sort/)