I am trying to sort multiple files based on first four fields value.
我正在尝试根据前四个字段的值对多个文件进行排序。
The command i tried is
我试过的命令是。
sort -t$'\u0001' -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat
When i try this i am getting the error like
当我尝试这个的时候,我得到了一个错误。
sort: multi-character tab `$\\u0001'
The delimiter used in the files is ^A (\u0001).
文件中使用的分隔符是^(\ u0001)。
The output of locale is
locale的输出是。
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=
Any help on this appreciated.
对此有任何帮助。
Regards, Shankar
问候,Shankar
2 个解决方案
#1
1
Since you said you're using Korn shell, try this:
既然你说你在用Korn shell,试试这个:
sort -t`printf "\u0001"` -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat
#2
1
Since the lowest 128 codepoints of unicode are compatible to ascii - \u0001
is the same as \1
.
因为unicode的最低128个codepoints与ascii - \u0001是兼容的,与\1是一样的。
The following command works:
下面的命令:
sort -t $'\1' -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat
#1
1
Since you said you're using Korn shell, try this:
既然你说你在用Korn shell,试试这个:
sort -t`printf "\u0001"` -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat
#2
1
Since the lowest 128 codepoints of unicode are compatible to ascii - \u0001
is the same as \1
.
因为unicode的最低128个codepoints与ascii - \u0001是兼容的,与\1是一样的。
The following command works:
下面的命令:
sort -t $'\1' -k1,1n -k2,2n -k3,3 -k4,4 * > output.dat