O que podemos fazer é transpor as colunas para linhas usando o rs
utilitário proveniente do BSD Unix, em seguida, apenas sort
das linhas (assim, efetivamente, classificando as colunas dos dados originais) e, em seguida, transponha novamente.
Passo a passo:
$ cat data
name ,adress ,mobile-number
Ane ,USA ,12121212
Joane ,England ,234234
$ rs -s, -C, -T < data
name ,Ane ,Joane ,
adress ,USA ,England ,
mobile-number,12121212,234234,
$ rs -s, -C, -T < data | sort
adress ,USA ,England ,
mobile-number,12121212,234234,
name ,Ane ,Joane ,
$ rs -s, -C, -T < data | sort | rs -s, -C, -T
adress ,mobile-number,name ,
USA ,12121212,Ane ,
England ,234234,Joane ,
$ rs -s, -C, -T < data | sort | rs -s, -S' ' -T
adress mobile-number name
USA 12121212 Ane
England 234234 Joane
Finalmente:
$ rs -s, -C, -T < data | sort | rs -s, -S' ' -T | sed -e 's/ \([^ ]\)/,/g'
adress ,mobile-number ,name
USA ,12121212 ,Ane
England ,234234 ,Joane
Eu fiz isso no Ubuntu GNU / Linux, e primeiro tive que sudo apt-get install rs
.