Неверное поведение команды сортировки?

Я попытался отсортировать содержимое файла на рабочем столе Ubuntu 14.04 (Trusty Tahr). В моем случае ожидаемый результат должен быть таким же, как исходный контент, но фактического результата нет. Почему?

# cat test.txt
a++-a
a++-b
a++-c
ab
ac
# cat test.txt | sort
a++-a
ab
a++-b
ac
a++-c
1
задан 8 April 2015 в 12:47

1 ответ

Сортировка использует алфавитную и числовую сортировку, такие же, как мы, специальные символы, такие как + - & lt; > ... игнорируются, числа обрабатываются численно, поэтому 1, 2, 3 .. предшествует 11, 12 1066 1104 - см.!

Таким образом, ваш список рассматривается как: aa, ab, ab, ac, ac

7
ответ дан 23 May 2018 в 22:19
  • 1
    Есть ли опция для сортировки, чтобы она не игнорировала специальные символы, так что test.txt сортирует желаемый путь? – Doug Smythies 17 March 2015 в 19:28
  • 2
    См. Это в man sort: *** ПРЕДУПРЕЖДЕНИЕ *** Язык, указанный средой, влияет на порядок сортировки. Установите LC_ALL = C, чтобы получить традиционный порядок сортировки, который использует значения собственного байта. – Ken Mollerup 17 March 2015 в 19:35
  • 3
    @KenMollerup, пожалуйста, добавьте больше информации в свой ответ. Добавьте цитату из man sort, добавьте примеры. – c0rp 17 March 2015 в 19:42
  • 4
    Да, но я был слишком медленным, см. Ниже ответ c0rp. – Ken Mollerup 17 March 2015 в 19:46

Другие вопросы по тегам:

Похожие вопросы: