Разница между сортировкой Gnu -k2 и -k2,2

Разница между сортировкой Gnu -k2 и -k2,2
less file.txt

01 Joe x
02 Marie y
03 Albert p
04 Dave k

Я хочу сортировать по столбцу 2. Однако обе следующие команды дают одинаковый вывод. Было бы здорово узнать, в чем разница между использованием -k2 и -k2,2.

less file.txt | sort -k2иless file.txt | sort -k2,2

Выход:

03 Albert p
04 Dave k
01 Joe x
02 Marie y

решение1

Спецификация после запятой определяет stop position(по умолчанию end of the line)

man 1 sort:

-k, --key=KEYDEFсортировка по ключу; KEYDEF указывает местоположение и тип

KEYDEF — F[.C][OPTS][,F[.C][OPTS]]начальная и конечная позиция, где F — номер поля, а C — позиция символа в поле; обе имеют начальную точку 1, а конечная позиция по умолчанию соответствует концу строки.


Например, рассмотрим входные данные file.txt:

03 Albert p
04 Albert a
  • Если сортировать с использованием -k2, Albert aбудет помещен передAlbert p
  • При использовании -k2,2третий ключ будет проигнорирован при сортировке

или другой пример:

03 Albert p
04 Aave k

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

$ sort -k2,2.2 file.txt
03 Albert p
04 Aave k
  • Если бы -k2использовались, Aaбыли бы отсортированы раньшеAl

Связанный контент