Diferencia entre Gnu sort -k2 y -k2,2

Diferencia entre Gnu sort -k2 y -k2,2
less file.txt

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

Quiero ordenar por columna 2. Sin embargo, los dos comandos siguientes dan el mismo resultado. Sería genial saber cuál es la diferencia entre usar -k2 y -k2,2.

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

Producción:

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

Respuesta1

La especificación después de la coma define a stop position(que por defecto es end of the line)

man 1 sort:

-k, --key=KEYDEFordenar mediante una clave; KEYDEF da ubicación y tipo

KEYDEF es F[.C][OPTS][,F[.C][OPTS]]para la posición inicial y final, donde F es un número de campo y C una posición de carácter en el campo; ambos son origen 1 y la posición de parada por defecto es el final de la línea.


Por ejemplo, considere una entrada file.txt:

03 Albert p
04 Albert a
  • Si se ordena usando -k2, Albert ase colocará antesAlbert p
  • Al usar -k2,2, la tercera clave se ignorará al ordenar

o un ejemplo diferente:

03 Albert p
04 Aave k

Es posible ordenar por el primer carácter de la segunda clave usando -k2,2.2:

$ sort -k2,2.2 file.txt
03 Albert p
04 Aave k
  • Si -k2se usaran, Aase ordenarían antes.Al

información relacionada