Я всегда предполагал, что sort
без каких-либо дополнительных аргументов будет сортировать файл в лексическом порядке.
Однако сегодня я наткнулся на следующий тестовый пример:
sort test2.txt
a/a
a/c
a//c
a/d
Как вы можете видеть, третья строка имеет две косые черты, поэтому вторая косая черта находится в месте, где соседние строки имеют буквы «c» и «d» соответственно. Я сомневаюсь, что «/» находится между «c» и «d» в любой кодовой странице, поэтому я предполагаю, что алгоритм сравнения по умолчанию не является строго лексическим.
Есть ли какая-то предварительная обработка (например, удаление не-букв?) или особые случаи (например, "последовательность из одного или нескольких символов равна любой другой последовательности символов"?) для сравнения символов?
Я прочитал man
страницу для sort
но не нашел там просветления.
я использую
sort --version
sort (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and Paul Eggert.
и мне действительно нужно сортировать миллионы URL - адреса для дальнейшего анализа , который предполагает лексический порядок - есть какие - либо варианты , которые я мог бы пройти sort
, чтобы достичь этого?