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