sort
当引入制表符分隔的字段时,我在使用 Unix 命令时遇到了困难。
如果文件test.txt
包含:
Hello (2)
Hello (1)
Hello
应用排序:
sort test.txt
产生输出:
Hello
Hello (1)
Hello (2)
但是,如果文件test2.txt
包含制表符分隔的字段:
Hello (2)\tFred
Hello (1)\tFred
Hello\tFred
其中\t
为制表符,应用排序:
sort -t $'\t' -k 1,2 test2.txt
导致不同的排序顺序。
Hello (1) Fred
Hello (2) Fred
Hello Fred
有没有办法使用该sort
命令,以便制表符分隔的字段按如下方式排序:
Hello Fred
Hello (1) Fred
Hello (2) Fred
答案1
sort
使用您当前的语言环境进行排序。我使用LANG=en_GB.UTF-8
我自己的语言环境,得到了您“不想要的”结果。使用语言C
环境,我得到了您想要的结果:
$ LANG=C sort -t $'\t' -k 1,2 test2.txt
Hello Fred
Hello (1) Fred
Hello (2) Fred