Почему выводы 'вида', 'вид k 1', 'вид k 1,1 ' равняется?

У меня есть файл:

$ cat file
1 c
8 a
1 b
5 f

Я думаю sort команда в начале сравнивает первое поле всех строк и сортирует их затем для тех строк, имеют равные первые поля, и начинает сортировать снова для вторых полей как это:

$sort file
1 b
1 c
5 f
8 a

Я читал о различии между опциями k 1 и k 1,1: с k 1 возможно, что ключ сортировки продолжается в конец строки, но с k 1,1 это должно отсортировать только первое поле, не рассматривая другие поля, но:

$sort -k 1 file
1 b
1 c
5 f
8 a

$sort -k 1,1 file
1 b
1 c
5 f
8 a

Почему имеют выводы sort = sort k 1 = sort k 1,1 равный?

Я думаю вывод sort k 1,1 file должен быть

1 c 
1 b
5 f
8 a

Если это не корректно, скажите мне, какова моя ошибка и как я могу быть произведен как этот?

2
задан 11 October 2016 в 11:15

2 ответа

От info sort

   Many options affect how ‘sort’ compares lines; if the results are
unexpected, try the ‘--debug’ option to see what happened.  A pair of
lines is compared as follows: ‘sort’ compares each pair of fields, in
the order specified on the command line, according to the associated
ordering options, until a difference is found or no fields are left.  If
no key fields are specified, ‘sort’ uses a default key of the entire
line.  Finally, as a last resort when all keys compare equal, ‘sort’
compares entire lines as if no ordering options other than ‘--reverse’
(‘-r’) were specified.  The ‘--stable’ (‘-s’) option disables this
“last-resort comparison” so that lines in which all fields compare equal
are left in their original relative order.  The ‘--unique’ (‘-u’) option
also disables the last-resort comparison.

Так для достижения желаемого результата (принимающий во внимание первое поле является числовым)

$ sort -s -k1,1n file
1 c
1 b
5 f
8 a
7
ответ дан 2 December 2019 в 01:28

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

sort -k1,1n -k2,2r file
3
ответ дан 2 December 2019 в 01:28

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

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