Ключ сортировки, кажется, не считает символы utf8 правильно - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу отсортировать строки следующего (минимального примера) файла tmp.txt по позициям 3 и 4 (мой исходный файл имеет различное количество пробелов, поэтому я не могу его использовать).

o Aa
á Ab
è Ba
f Bb

Кодировка файла - utf8.

prompt$ file -i tmp.txt
tmp.txt: text/plain; charset=utf-8

И моя локаль также utf8

prompt$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Тем не менее, вывод следующей команды не тот, который я ожидаю:

prompt$ cat tmp.txt | sort -R | sort --debug --key 1.3,1.4
sort: using ‘en_US.UTF-8’ sorting rules
á Ab
 __
____
o Aa
  __
____
è Ba
 __
____
f Bb
  __
____

Я включил --debug, чтобы визуализировать, что делает sort.Он считает специальные символы как два и, следовательно, неправильно определяет позицию ключа, как показано подчеркиванием.Кто-нибудь может мне сказать, как убедить sort считать специальные символы только как один?

prompt$ sort --version
sort --version
sort (GNU coreutils) 8.26

Лучший, Йозеф.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...