Linux排序多个文件 - 排序:多字符标签`$ \\ u0001'

时间:2015-03-19 14:36:39

标签: linux sorting

我正在尝试根据前四个字段值对多个文件进行排序。

我试过的命令是

sort -t$'\u0001' -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat

当我尝试这个时,我得到的错误就像

sort: multi-character tab `$\\u0001'

文件中使用的分隔符是^ A(\ u0001)。

语言环境的输出是

LANG=en_US.ISO-8859-1
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=

对此有任何帮助表示赞赏。

此致 香卡

2 个答案:

答案 0 :(得分:1)

由于unicode的最低128个代码点与ascii兼容 - \u0001\1相同。

以下命令有效:

sort -t $'\1' -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat

答案 1 :(得分:1)

既然你说你正在使用Korn shell,试试这个:

sort -t`printf "\u0001"` -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat