2015-03-19 2 views
1

Я пытаюсь сортировать несколько файлов на основе первых четырех значений полей.

Команда я попытался это

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

Я думаю, что должно работать нормально. В вашей среде должно быть что-то странное. Вы используете 'bash'? Что такое вывод 'locale'? – nanny

+0

Я попробовал echo $ SHELL в моем терминале, результатом является/bin/ksh – Shankar

+0

Ahh, ну это, наверное, проблема. – nanny

ответ

1

Так как вы сказали, что вы используете Korn оболочки, попробуйте это:

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

Я пробовал это, я получил ошибку ниже. printf: недопустимое имя универсального символа \ u0001 Сортировка: многосимвольный вклад '-k1,1n ' – Shankar

+0

фактически работает на другом Linux-сервере, даже команда, над которой я размещался выше, также работает на другом сервере .. некоторая проблема с сервером но я не знаю, как устранить его. – Shankar

+0

sort -t'printf "\ 1" '-k1,1n -k2,2n -k3,3 -k4,4 *> output.dat работал – Shankar

1

С самых низких 128 кодовых Юникода совместимы с ASCII - \u0001 такое же, как \1.

Следующая команда работы:

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

Я пробовал это, ту же ошибку, которую я получаю .. sort: multi-character tab '$ \\ 1 ' – Shankar

+0

фактически работает на другом Linux-сервере, даже команда, над которой я размещался выше, также работает на другом сервере .. некоторая проблема с сервер, но я не знаю, как устранить его. – Shankar

+0

его работа для небольших файлов .. но когда я пытаюсь с большими файлами (несколько файлов - toatl размером 50 ГБ), это была ошибка при прокачке $ time sort -t'printf "\ 1" '-k1,1n -k2, 2n -k3,3 -k4,4 *> output.dat dm-84: предупреждение, превышена квота группового блока. dm-84: сбой записи, достигнуто ограничение группового блока. sort: write failed:/tmp/sort5RsGgE: превышена дисковая квота 366.11s реальная пользовательская система 247.58s 29.65s система – Shankar

Смежные вопросы