CSVファイルの列の並べ替え

CSVファイルの列の並べ替え

CSVファイル内のすべての列を列名でソートしようとしています。私が持っているのはこれです:

name  ,adress  ,mobile-number
Ane   ,USA     ,12121212
Joane ,England ,234234

私が必要とする出力は

adress ,name  ,mobile-number
USA    ,Ane   ,12121212
England,Joane ,234234

問題は、3つ以上の列があり、並べ替え順序がわかりませんが、昇順で並べ替える必要があることです。

ベストアンサー1

Miller(mlr)を使用して、ヘッダーを含む各フィールドの余分なスペースをクリーンアップし、フィールドの順序を変更します。

$ mlr --csv clean-whitespace then reorder -f adress,name,mobile-number file
adress,name,mobile-number
USA,Ane,12121212
England,Joane,234234

(を使用すると、フィールドはフィールドの先頭にのみreorder -f adress移動されます。この場合、同じ効果があります。)adress

または、ヘッダーのソート方法に従ってフィールドを昇順にソートしたい場合:

$ mlr --csv clean-whitespace then sort-within-records file
adress,mobile-number,name
USA,12121212,Ane
England,234234,Joane

おすすめ記事