Bonjour à tous
Suite à petit programme en mélange de awk et shell j'obtiens un fichier que je souhaite trier sur plusieurs colonnes mais la commande tri (sort) me pose quelques soucis et je ne trouve rien en awk
mon fichier de départ = fic1 est de type
1 2 3 4 5 6 7 8 9 10 11 12
|
col1 col2 var1 var2 h1 h2
10 11 0.46585 0.45304 0.26612 0.11821
3 10 0.30274 0.46261 0.38001 0.12164
3 11 0.29714 0.45030 0.67664 0.80811E-01
3 4 0.29344 0.23612 0.87633 0.40339E-01
3 9 0.30473 0.12433 -0.37703 0.22029
4 13 0.23579 0.32574 0.76885 0.68132E-01
4 14 0.23536 0.32237 0.76262 0.69857E-01
4 5 0.23513 0.25724 0.84904 0.51867E-01
4 9 0.23955 0.12694 -0.43368 0.22753
5 10 0.26563 0.32722 0.91645 0.28555E-01 |
Je souhaite que col1 soit trié de 1 à 10 puis col2 de 1 à 10 également
un sort -n ou sort -k1n ou un sort -k1n,2n fic1 me renvoie systématiquement
1 2 3 4 5 6 7 8 9 10 11
| col1 col2 var1 var2 h1 h2
3 4 0.29344 0.23612 0.87633 0.40339E-01
3 9 0.30473 0.12433 -0.37703 0.22029
4 5 0.23513 0.25724 0.84904 0.51867E-01
4 9 0.23955 0.12694 -0.43368 0.22753
5 10 0.26563 0.32722 0.91645 0.28555E-01
3 10 0.30274 0.46261 0.38001 0.12164
3 11 0.29714 0.45030 0.67664 0.80811E-01
4 13 0.23579 0.32574 0.76885 0.68132E-01
4 14 0.23536 0.32237 0.76262 0.69857E-01
10 11 0.46585 0.45304 0.26612 0.11821 |
Existe t'il un tri en shell ou awk qui prenne en compte la colonne souhaiter? j'aurai aimé en awk quelquechose type sort $1, $2
mais apparemment non ....
Autre question si je veut trier var1 par ordre croissant, il faut que je fasse
awk '{print $3; $1;$2;$4;$5;$6}' fic1 | sort-n > fic2
Ensuite je dois remettre mes colonnes dans le bon ordre
awk '{print $2;$3; $1;$4;$5;$6}' fic1 | sort-n > fic2
ou Existe t'il quelque chose de plus simple ?
Merci
Partager