1

Мне нужно отсортировать несколько строк кириллических символов, и я хочу использовать утилиту сортировки (в MAC OS X 10.6). Проблема в том, что результат неверен. Я беру текст в буфер обмена, затем запускаю pbpaste | sort Это незашифрованные данные, и я также попытался передать файл команде sort.

Мои исходные данные

Биатлон
Арбуз
Фото
Пума
Перина
Новость
Карандаш
Перина с двумя пододеяльниками
Карикатура
Куст
Фигура

И после сортировки я получаю

Куст
Пума
Фото
Арбуз
Перина
Фигура
Перина с двумя пододеяльниками
Биатлон
Новость
Карандаш
Карикатура

Эти строки даже не сгруппированы по первой букве. Я попытался вариант -d, но затем я получаю сообщение об ошибке

sort: строка сравнения не удалась: Недопустимая последовательность байтов sort: Установите LC_ALL = 'C', чтобы обойти проблему. sort: сравниваемые строки были \320\321\321\321' and\320\320\320\321\321\320'.

Экспорт переменной в соответствии с рекомендациями не решает проблему. Что я могу сделать, чтобы использовать утилиту сортировки для такой задачи? Любая дополнительная информация необходима?

2 ответа2

2

Я считаю, что вам нужно установить язык. Я думаю, что вы можете сделать это:

LC_ALL="ru" pbpaste | sort

(Первая часть устанавливает переменную среды LC_ALL на время выполнения команды.)

Я бегу Leopard. Когда я выпускаю pbpaste, все символы заменяются на вопросительные знаки. Я сохранил текст в файл в кодировке UTF-8 с именем sort_temp.txt и запустил:

sort sort_temp.txt 

дает тот же неправильно отсортированный список, который вы опубликовали, но работает

LC_ALL="ru" sort sort_temp.txt

или же

LANG="ru" sort sort_temp.txt

дает правильно отсортированный список.

0

Попробуйте сохранить данные в файле в кодировке Unicode (или UTF8), и если утилита сортировки включена в Unicode, она должна работать. Я думаю, проблема в том, что pbpaste неправильно устанавливает кодировку. Я не пользователь Mac, так что это только предположение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .