newsare.net
Введение Всё началось с короткого скрипта, который должен был объединить информацию об адресах e-mail сотрудников, полученных из списка пользоКак Linux'овский sort сортирует строки
Введение Всё началось с короткого скрипта, который должен был объединить информацию об адресах e-mail сотрудников, полученных из списка пользователей почтовой рассылки, с должностями сотрудников, полученными из базы отдела кадров. Оба списка были экспортированы в текстовые файлы в кодировке Юникод UTF-8 и сохранены с юниксовскими концами строк. Содержимое mail.txt Иванов Андрей;ia@example.com Содержимое buhg.txt Иванова Алла;маляр Ёлкина Элла;крановщица Иванов Андрей;слесарь Абаканов Михаил;маляр Для объединения файлы были отсортированы юниксовской командой sort и поданы на вход юниксовской программе join, которая неожиданно завершилась с ошибкой: $> sort buhg.txt > buhg.srt $> sort mail.txt > mail.srt $> join buhg.srt mail.srt > result join: buhg.srt:4: is not sorted: Иванов Андрей;слесарь Просмотр результата сортировки глазами показал, что в целом сортировка правильная, но в случае совпадений мужских и женских фамилий, женские идут перед мужскими: $> sort buhg.txt Абаканов Михаил;маляр Ёлкина Элла;крановщица Иванова Алла;маляр Иванов Андрей;слесарь Выглядит как глюк сортировки в Юникоде или как проявление феминизма в алгоритме сортировки. Первое, конечно, правдоподобнее. Читать дальше → Read more