Я вижу что-то странное с 'видом' в 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
Сортировка может быть выполнена так, как вы хотите, если ограничить ключ интересующим вас столбцом:
sort -k1,1 inputfile
на странице руководства
-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