Classificando uma String numérica usando 'sort'

0

Eu li o manual sort , mas sinto que estou sentindo falta de algo.

Arquivo de origem

Aqui está o arquivo CSV que estou tentando classificar:

$ cat SAMPLE.CSV 
compid,active,tagno
-2147483646,1,"1"
-2147483645,0,"10000"
-2147483644,0,"1002"
-2147483127,1,"76245.1"
-2147483126,1,"76245.2"
-2147468087,1,"76245"

Resultado desejado

Estou tentando classificar pela terceira (última) coluna, também conhecida como a coluna tagno . O resultado desejado deve ficar assim:

compid,active,tagno
-2147483646,1,"1"
-2147483644,0,"1002"
-2147483645,0,"10000"
-2147468087,1,"76245"
-2147483127,1,"76245.1"
-2147483126,1,"76245.2"

Tentativas vãs

Por todas as contas, o comando a seguir deve fazer exatamente o que eu quero:

$ sort SAMPLE.CSV -n -k 3 -t ','
-2147468087,1,"76245"
-2147483126,1,"76245.2"
-2147483127,1,"76245.1"
-2147483644,0,"1002"
-2147483645,0,"10000"
-2147483646,1,"1"
compid,active,tagno

Eu até tentei com a opção "general-numeric-sort":

$ sort SAMPLE.CSV -g -k 3 -t ','
-2147468087,1,"76245"
-2147483126,1,"76245.2"
-2147483127,1,"76245.1"
-2147483644,0,"1002"
-2147483645,0,"10000"
-2147483646,1,"1"
compid,active,tagno

Esta é a primeira vez que uso sort , então sinto que estou perdendo algo fundamental aqui.

sort versão

$ sort --version
2.3-Apple (99)

Ajuda por favor?

    
por Joshua Pinter 24.03.2018 / 23:53

1 resposta

1

O separador de campo padrão em sort não está em branco para a transição em branco. Você precisa de um separador diferente aqui: um doublequote.

sort -t'"' -k2n SAMPLE.CSV

Você está classificando pela segunda coluna. Felizmente, a segunda coluna está vazia na linha de cabeçalho, então vem em primeiro lugar.

    
por 24.03.2018 / 23:59