我正在尝试根据前四个字段值对多个文件进行排序。
我试过的命令是
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=
对此有任何帮助表示赞赏。
此致 香卡
答案 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