Classificando o campo VARCHAR em numérico (com zeros de preenchimento)

0

Eu tenho dados no meu arquivo como segue

07020,6880A98805,03/09/2014
04374,6880698805,09/01/2014
05019,6880698805,07/01/2014
05020,2710239905,08/02/2007
05020,2710239905,08/31/2007
05021,2710239905,09/01/2007
05806,2710239905,08/30/2007
05807,8803975905,08/01/2014
05808,8803975905,06/01/2014
06019,6880698805,07/01/2006
06020,6880698805,03/09/2014
07807,8803975905,08/01/2014
13375,3470566899,07/16/2015
13376,3470566899,08/16/2016
058030,6880698805,01/12/201
058030,6880698805,01/12/2015
058030,6880698805,01/12/2015
100004,8803975905,03/09/2014
100005,8803975905,01/01/2015
100006,8803975905,02/01/2015
100007,8626833130,01/16/2016
100031,8803975905,01/12/2015
100031,8803975905,01/12/2015
100031,8803975905,01/12/2015
100032,8803975905,01/01/2015

Eu quero classificar a ordem dos arquivos pelo primeiro campo (numericamente) e depois pelo segundo campo (numericamente) e depois pela terceira.

Usando os fóruns, experimentei vários, mas de alguma forma não estou obtendo a ordem necessária usando:

sort -n -t',' -k1.1n,1.15n -k2.1n,2.10n -k3.7n,3.10n -k3.1n,3.2n -k3.4n,3.5n <file_name.csv>

Alguém pode me informar, o que está errado?

    
por user206852 23.12.2016 / 00:38

1 resposta

1

Parece que você estava bem perto. Você não pode classificar o segundo campo numericamente, porque não é totalmente numérico (existe um A na primeira linha).

Isso funciona para mim:

sort -t, -k1,1n -k2,2 -k3.7,3.10 -k3.1,3.2n -k3.4,3.5n
    
por 23.12.2016 / 00:47