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 -k2
yless 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=KEYDEF
ordenar mediante una clave; KEYDEF da ubicación y tipoKEYDEF 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 a
se 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
-k2
se usaran,Aa
se ordenarían antes.Al