Unixソート機能では、文字列を数字で完全にソートすることはできません。

Unixソート機能では、文字列を数字で完全にソートすることはできません。

タブで区切られた2つの列を含むファイルがあります。

  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)

このファイルを最初の列に基づいてアルファベット順にソートしたいと思います。したがって、同じタイトルが連続して表示される必要があります。

だから私はこれをしました:

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

ただし、結果は実際には上記のスナップショットです。ご覧のとおり、「A-10」の項目は順序なしで連続的には発生しません。アルファベット順自体はあまり気にしませんが、同じタイトルが連続して出てほしいです。並べ替えでこの操作が許可されない理由と、それを解決する方法を説明できる人はいますか?ありがとうございます!

ベストアンサー1

試してみてください:

LC_COLLATE=C sort myfile

過去に同様の行動を経験したことがありましたが、同僚のこの提案が役に立ちました。

おすすめ記事