Diferença entre Gnu sort -k2 e -k2,2

Diferença entre Gnu sort -k2 e -k2,2
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 -k2eless 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=KEYDEFclassifique por meio de uma chave; KEYDEF fornece localização e tipo

KEYDEF é 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 aseria 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 -k2fossem usados, Aaseriam classificados antesAl

informação relacionada