Поскольку я имел дело с очень большими файлами, я отсортировал файлы базы и кандидата, прежде чем сравнивать их, чтобы увидеть, какие строки отсутствовали у другого. Я сделал это, чтобы не хранить записи в памяти. Сортировка была выполнена с использованием инструмента командной строки Linux, сортировки.Linux Сортировка против сравнения строк в Perl
В моем скрипте Perl я бы посмотрел, была ли строка в строке lt, gt или eq в строке в другом файле, продвигая указатели в файле, где это необходимо. Тем не менее, я столкнулся с проблемой, когда заметил, что мое сравнение строк показало, что строки в базовом файле были строкой в файле-кандидате, который содержал специальные символы.
Есть ли верный способ убедиться, что мои сравнения строк Linux и Perl строятся с использованием одного и того же типа строкового компаратора?
Вы смотрели 'join' или' comm'? Они должны работать, если вам нужно только увидеть, какие строки отсутствуют в другом файле. –
@ Предложение Даниэля хорошее - похоже, что вы в основном писали 'comm' в Perl :) Хотя интересно, что в man-странице' comm' не упоминаются локали, так что, возможно, у него будет такая же проблема, как ваш скрипт Perl. –