A função de classificação Unix não classifica completamente a cadeia com números

1

Eu tenho um arquivo que contém duas colunas separadas por tab.

  A10         A10_motorway_(Switzerland)              
  A-10        A-10_N/AW
  A10         A10_Networks
  A-10        A-10_road
  A10         A10_road                  
  A10_road_(California)      A10_road_(Canada)      
  A10_road_(Croatia)         A10_road_(disambiguation)  
  A10_road_(England)         A10_road_(Great_Britain)   
  A10_road_(Isle_of_Man)     A10_road_(Isle_of_Man) 
  A10_road_(Latvia)          A10_road_(Malaysia)
  A10_road_(United_Kingdom)  A10_road_(United_States_of_America)    
  A10_road_(USA)             A10_road_(Zimbabwe)
  A-10        A-10_Shrike
  A10         A10_(Switzerland)

Eu quero classificar este arquivo pela primeira coluna em ordem alfabética. Então, os mesmos títulos devem aparecer consecutivamente.

Então eu fiz isso:

     sort -t $'\t' -k1 -d filename 

Mas o resultado é, na verdade, o instantâneo acima. Como você vê, as entradas "A-10" não são ordenadas e não acontecem consecutivamente. Eu realmente não me importo com a ordem alfabética em si, mas quero que os mesmos títulos ocorram consecutivamente. Alguém poderia explicar por que tipo não me permite fazer isso e como corrigir esse problema? Obrigado!

    
por pandagrammer 14.01.2016 / 23:35

2 respostas

0

Descobri empiricamente que -k1,1 coloca os " A10 " juntos e os " A-10 " juntos, mas não entendo o porquê. Isso é com sort do GNU coreutils 8.4.

    
por 14.01.2016 / 23:49
0

Por favor, tente:

LC_COLLATE=C sort myfile

encontrou um comportamento semelhante no passado e este sugerido por um colega de trabalho me ajudou

    
por 14.01.2016 / 23:49

Tags