#linux #shell #command-line
#linux #оболочка #командная строка
Вопрос:
Я хочу, чтобы sort
команда обрабатывала все символы одинаково.
Например, когда я делаю
$ echo -e 'TEST.bnTESTanTESTc' | sort
TESTa
TEST.b
TESTc
точка игнорируется.
Я хотел бы получить TEST.b
последнюю или первую позицию. Однако я не могу найти правильный параметр на странице руководства.
(моя версия sort
взята из GNU core utilities).
Комментарии:
1. Какой языковой стандарт вы используете?
2. У меня был «LANG= en_US.UTF-8»
3.Также нашел эту ссылку: superuser.com/questions/226449 /…
echo -e 'TEST.bnTESTanTESTc' | sort -V
также работает без настройки локали.
Ответ №1:
Принудительно выполните сортировку в C
, чтобы сравнить исходные значения символов.
$ echo -e 'TEST.bnTESTanTESTc' | LC_COLLATE=C sort
TEST.b
TESTa
TESTc
Комментарии:
1. Я попробовал LC_ALL=C, но, похоже, в некоторых случаях это не удается? LC_COLLATE=C сработало лучше всего!