A saída de awk
contém apenas uma coluna, portanto, nenhuma coluna 16.
Portanto, sort
vê todas as chaves de ordenação vazias idênticas e o que você observa é o resultado da última classificação de resort (ordenação lexical na linha inteira) que você pode desativar com a opção -s
em algumas implementações. >
Aqui você quer:
awk -F'[:,]' '{print $16}' test.json | sort -n
Agora, se você quiser classificar o arquivo na coluna 16 th , tome cuidado, sort
suporta apenas um delimitador de coluna de caractere, então você precisa pré-processar a entrada:
sed 's/[:,]/&+/g' test.json | sort -t+ -k16,16n | sed 's/\([:,]\)+//g'
Aqui, adicionando um +
a cada :
ou ,
, classificando com +
como o delimitador da coluna e removendo o +
posteriormente.