Porque o sort
é implementado de maneira a analisá-los da maneira esperada.
Veja também aqui :
- Sometimes options and their arguments are run together, sometimes separated by whitespace, and sometimes by a character, typically : or =. Thus "Prog -fFilename", "Prog -f Filename", "Prog -f:Filename", "Prog -f=Filename".
- Some programs allow single-character options to be combined; others do not. The switch "-fA" may mean the same as "-f -A", or it may be incorrect, or it may even be a valid but different parameter.
Isso parece uma combinação de ambos (funciona sem espaço em branco e combinação de opções de caractere único).
Eles são simplesmente programas diferentes, cuja análise de argumentos é implementada de maneira diferente.
Em coreutils
8.13, compare o seguinte:
-
src/sort.c
linha 4315, invocando a função especial de análise de números inteirosparse_field_count
, que retorna com o primeiro caractere inválido (isto é, quando o valor numérico é finalizado e a próxima opção é iniciada): É por isso quesort
pode manipular seus argumentos. li> -
src/cut.c
, linha 803 ff., simplesmente usando o comportamento normalgetopt
de interpretar tudo até o próximo espaço em branco como parâmetro para a opção atual.