удар Linux 'вид' в лексикографическом порядке - проблема с нулями

Я вижу что-то странное с 'видом' в RedHat Enterprise Linux 5 x86_64 и в Ubuntu 9.1. Я использую удар.

Сначала вот то, что я думаю, является правильным ожидать от вида с помощью лексикографического порядка:

[stauffer@unix-m sortTrouble] кошка $ st1
1230
123
100
11
10
1
123
1230
100

[stauffer@unix-m sortTrouble] вид $ st1
1
10
100
100
11
123
123
1230
1230

[stauffer@unix-m sortTrouble] $

Теперь вот то, что происходит, когда существует второй столбец (разграниченный вкладкой, даже при том, что это выглядит грязным здесь):

[stauffer@unix-m sortTrouble] кошка $ st2
1230 1
123 1
100 1
11 1
10 1
1 1
123 1
1230 1
100 1

[stauffer@unix-m sortTrouble] вид $ st2
100 1
100 1
10 1
1 1
11 1
1230 1
1230 1
123 1
123 1

Заметьте, как порядок сортировки для столбца 1 отличается теперь. '11' помещается правильно, после '1', но '10' и '100' не делают. Так же для '1 230'. Кажется, что нуль доставляет неприятности.

Это поведение непоследовательно, и оно вызывает проблемы при использовании 'соединения', потому что оно ожидает сортировку словаря.

На Mac OSX 10.5, st2 видах файла как st1 в первом столбце.

Я пропускаю что-то, или действительно ли это - ошибка?

Спасибо, Michael

5
задан michael 24 June 2010 в 04:51
поделиться

2 ответа

Сортировка может быть выполнена так, как вы хотите, если ограничить ключ интересующим вас столбцом:

sort -k1,1 inputfile
4
ответ дан 18 December 2019 в 16:36
поделиться

на странице руководства

   -b, --ignore-leading-blanks
          ignore leading blanks

   -g, --general-numeric-sort
          compare according to general numerical value

   -n, --numeric-sort
          compare according to string numerical value

например:

andrey@localhost:~/gamess$ echo -e "1\n2\n10" | sort
1
10
2
andrey@localhost:~/gamess$ echo -e "1\n2\n10" | sort -g
1
2
10
8
ответ дан 18 December 2019 в 16:36
поделиться
Другие вопросы по тегам:

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