sort
opera em linhas inteiras. Por padrão, ele classifica todo o conteúdo dessa linha, mas -k
pode ser usado para classificar um ou mais campos nessas linhas. -t
pode ser usado para alterar o delimitador entre campos. Não consigo pensar em um caso em que usar -t
sem usar -k
faça sentido.
Seu segundo comando, que é equivalente a:
printf "%s\n%s\n" "110,20,30,13" "kill,gill,burger" | sort -t',' -n
produz:
kill,gill,burger
110,20,30,13
Qual é o que eu esperaria. -t','
não tem efeito porque está alterando o delimitador de campo quando você não disse que a classificação funcione em campos individuais e, portanto, k
é classificado antes de 1
porque seu valor numérico é 0 (e você solicitou a ordem numérica usando -n
).