less file.txt
01 Joe x
02 Marie y
03 Albert p
04 Dave k
Quero classificar pela coluna 2. No entanto, ambos os comandos a seguir fornecem a mesma saída. Seria ótimo saber qual é a diferença entre usar -k2 e -k2,2.
less file.txt | sort -k2
eless file.txt | sort -k2,2
Saída:
03 Albert p
04 Dave k
01 Joe x
02 Marie y
Responder1
A especificação após a vírgula define a stop position
(cujo padrão é end of the line
)
man 1 sort
:
-k
,--key=KEYDEF
classifique por meio de uma chave; KEYDEF fornece localização e tipoKEYDEF é
F[.C][OPTS][,F[.C][OPTS]]
para posição inicial e final, onde F é um número de campo e C uma posição de caractere no campo; ambos são origem 1 e a posição de parada é padronizada para o final da linha.
Por exemplo, considere uma entrada file.txt
:
03 Albert p
04 Albert a
- Se classificado usando
-k2
,Albert a
seria colocado antesAlbert p
- Ao usar
-k2,2
, a terceira chave será ignorada durante a classificação
ou um exemplo diferente:
03 Albert p
04 Aave k
É possível classificar pelo primeiro caractere da segunda chave usando -k2,2.2
:
$ sort -k2,2.2 file.txt
03 Albert p
04 Aave k
- Se
-k2
fossem usados,Aa
seriam classificados antesAl