Sort

sort排序常用参数

-n : 按照数值排序

-u : 过滤重复的行

-r : 降序排序,默认升序

-t : 指定分段符号

-k : 按照第几个字段(1…)排序

默认sort是按照字符排序的。

sort临时目录

默认情况下sort使用/tmp作为临时文件存放目录,如果根分区很小,可能造成分区磁盘飙升,为避免这种情况可以使用-T参数来指定sort的临时目录:

1
sort -T /path/to/tmp_directory

sort不为人知的一个深坑

默认情况下,sort将排序对象作为字符串进行排序,并且声称按照ANSII字母顺序进行排序,实际上,如果系统的LC_ALL环境变量为空的话,sort的排序并不一定是按字母顺序进行排序的,这会导致sort的下游依赖程序运行得不稳定,所以,如果要确保sort正确排序,需要正确设置环境变量:

1
export LC_ALL=C

为什么这样设置,可以man sort看一下它的warning部分的说明。

Comments