LINUX.ORG.RU

join -i не игнорирует регистр кириллицы в UTF-8

 , ,


0

1

Есть два файла, 1.csv

Москва
Новосибирск
Санкт-петербург
и 2.csv
москва
Новосибирск
Санкт-Петербург

LC_ALL=ru_RU.UTF-8 sort -f выдаёт аналогичные файлы в одинаковом порядке.

LC_ALL=ru_RU.UTF-8 join -i -t " 1.csv 2.csv не отрабатывает, выдаёт ошибку

 join: 2.csv:2: is not sorted: Новосибирск

При конвертации в восьмибитную кодировку всё работает, как ожидается. Практичнее, правда, использовать sed 's/.*/\L&/g' или tolower() из awk.

Вопрос: это ошибка локали или ошибка реализации join?

Проблема на твоей стороне, УМВР.

# LC_ALL=ru_RU.UTF-8 join -i -t '' 1.csv 2.csv
Москва
Новосибирск
Санкт-петербург
# LC_ALL=ru_RU.UTF-8 join -i -t '' 2.csv 1.csv
москва
Новосибирск
Санкт-Петербург
# rpm -qf $(which join)
coreutils-8.30-7.fc29.x86_64
legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Забавно. Ubuntu 18.04 LTS, но даже свежесобранный coreutils выдаёт ошибку.

gedisdone ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.