Рассмотрим этот фрагмент:Сохранять первоначальный заказ, если числовое значение равно в сортировке coreutils?
echo '7 a
3 c
3 b
2 first
2 second
2 third
2 fourth
2 fifth
9 d
2 sixth
' | sort -n -k 1
Это дает выход:
2 fifth
2 first
2 fourth
2 second
2 sixth
2 third
3 b
3 c
7 a
9 d
Хотя список правильно упорядоченное численно ключом по первому знаку, а также для тех значений, которые являются смежными и равны, оригинал порядок был перетасован. Я хотел бы получить:
2 first
2 second
2 third
2 fourth
2 fifth
2 sixth
3 c
3 b
7 a
9 d
Возможно ли это сделать с sort
? Если нет, то каким будет самый простой способ добиться такого рода сортировки с помощью инструментов оболочки?
Огромное спасибо за это, @ 1_CR - на самом деле я заметил формулировку «последней версии» в manpage, потому что я думал, что это звучит странно - и не раз мне пришло в голову, что это связано с этим! Цените сниппет - привет! – sdaau
В дополнение к '-s' вам нужно указать свой ключ как' -k 1,1', потому что 'KEYDEF - F [.C] [OPTS] [, F [.C] [OPTS]] для запуска и stop position' ... ', а позиция останова по умолчанию равна концу строки. Поэтому, если вы укажете '-k 1', вся строка будет использоваться для сортировки. Вы можете использовать '--debug', чтобы увидеть каждую строку, часть которой была использована для сортировки. –
@benediktkoppel, действительно. Исправления – iruvar