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

时间:2022-01-10 07:43:57

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