Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/12/2018, à 16:22

Brice Jeunieaux

[Résolu] Tableaux : afficher liste de clefs par ordre alphabétique

Bonjour / bonsoir smile ,

ayant un tableau associatif dont les clefs sont générés afin d'avoir ce modèle de nom : " Page1,Ligne3,Champ5 ", je souhaiterais pouvoir afficher la liste des clefs, dans l'ordre alphabétique de celles-ci, et si possible, un petit plus, les afficher une par ligne du terminal.

Actuellement, mon problème ressemble physiquement à ça (attention, dans mon terminal, mes clés apparaissent sur plusieurs lignes, contrairement à ici, même si ça revient au même dans le problème) :

[brice@brice-Lenovo-G505] [~/.../Crepe] $
./test2.sh

Page4,LD55,Champ6 Page2,LD28,Champ4 Page2,LD17,Champ2 Page4,LD55,Champ7 Page2,LD28,Champ5 Page2,LD17,Champ3 Page4,LD58,Champ3 Page4,LD55,Champ4 Page2,LD28,Champ6 Page2,LD24,Champ2 Page4,LD58,Champ2 Page4,LD55,Champ5 Page2,LD28,Champ7 Page2,LD24,Champ3 Page4,LD58,Champ5 Page4,LD55,Champ2 Page2,LD24,Champ4 Page2,LD17,Champ6 Page4,LD58,Champ4 Page4,LD55,Champ3 Page2,LD24,Champ5 Page2,LD17,Champ7 Page4,LD58,Champ7 Page2,LD28,Champ2 Page2,LD24,Champ6 Page2,LD17,Champ4 Page4,LD58,Champ6 Page2,LD28,Champ3 Page2,LD24,Champ7 Page2,LD17,Champ5 Page2,LD20,Champ4 Page2,LD18,Champ3 Page2,LD20,Champ5 Page2,LD18,Champ2 Page2,LD20,Champ6 Page2,LD20,Champ7 Page2,LD18,Champ7 Page2,LD18,Champ6 Page2,LD20,Champ2 Page2,LD18,Champ5 Page2,LD20,Champ3 Page2,LD18,Champ4 Page3,LD33,Champ5 Page2,LD22,Champ6 Page1,LD13,Champ5 Page3,LD33,Champ4 Page2,LD22,Champ7 Page1,LD13,Champ4 Page3,LD33,Champ7 Page2,LD22,Champ4 Page1,LD13,Champ7 Page3,LD33,Champ6 Page2,LD22,Champ5 Page1,LD13,Champ6 Page2,LD22,Champ2 Page2,LD22,Champ3 Page3,LD33,Champ3 Page1,LD13,Champ3 Page3,LD33,Champ2 Page1,LD13,Champ2 Page3,LD43,Champ2 Page3,LD36,Champ2 Page1,LD6,Champ7 Page3,LD43,Champ3 Page3,LD36,Champ3 Page1,LD6,Champ6 Page1,LD6,Champ5 Page1,LD6,Champ4 Page3,LD43,Champ6 Page3,LD36,Champ6 Page1,LD6,Champ3 Page3,LD43,Champ7 Page3,LD36,Champ7 Page1,LD6,Champ2 Page3,LD43,Champ4 Page3,LD36,Champ4 Page3,LD43,Champ5 Page3,LD36,Champ5 Page2,LD16,Champ3 Page2,LD16,Champ2 Page2,LD16,Champ5 Page2,LD16,Champ4 Page2,LD16,Champ7 Page2,LD16,Champ6 Page2,LD30,Champ3 Page2,LD30,Champ2 Page2,LD30,Champ5 Page2,LD30,Champ4 Page2,LD30,Champ7 Page2,LD30,Champ6 Page4,LD49,Champ3 Page2,LD23,Champ5 Page4,LD49,Champ2 Page2,LD23,Champ4 Page4,LD53,Champ2 Page2,LD23,Champ7 Page4,LD53,Champ3 Page2,LD23,Champ6 Page4,LD53,Champ4 Page4,LD49,Champ7 Page4,LD53,Champ5 Page4,LD49,Champ6 Page4,LD53,Champ6 Page4,LD49,Champ5 Page2,LD23,Champ3 Page4,LD53,Champ7 Page4,LD49,Champ4 Page2,LD23,Champ2 Page4,LD57,Champ4 Page3,LD40,Champ7 Page3,LD35,Champ7 Page2,LD26,Champ2 Page1,LD15,Champ7 Page1,LD2,Champ3 Page4,LD57,Champ5 Page3,LD40,Champ6 Page3,LD35,Champ6 Page2,LD26,Champ3 Page1,LD15,Champ6 Page1,LD2,Champ2 Page4,LD57,Champ6 Page4,LD47,Champ3 Page3,LD40,Champ5 Page3,LD35,Champ5 Page1,LD15,Champ5 Page1,LD4,Champ3 Page4,LD57,Champ7 Page4,LD47,Champ2 Page3,LD40,Champ4 Page3,LD35,Champ4 Page1,LD15,Champ4 Page1,LD4,Champ2 Page4,LD47,Champ5 Page3,LD40,Champ3 Page3,LD35,Champ3 Page2,LD26,Champ6 Page1,LD15,Champ3 Page1,LD4,Champ5 Page1,LD2,Champ7 Page4,LD47,Champ4 Page3,LD40,Champ2 Page3,LD35,Champ2 Page2,LD26,Champ7 Page1,LD15,Champ2 Page1,LD4,Champ4 Page1,LD2,Champ6 Page4,LD57,Champ2 Page4,LD47,Champ7 Page2,LD26,Champ4 Page1,LD4,Champ7 Page1,LD2,Champ5 Page4,LD57,Champ3 Page4,LD47,Champ6 Page2,LD26,Champ5 Page1,LD4,Champ6 Page1,LD2,Champ4 Page4,LD48,Champ4 Page4,LD48,Champ5 Page4,LD48,Champ6 Page1,LD7,Champ2 Page4,LD48,Champ7 Page1,LD7,Champ3 Page1,LD7,Champ4 Page1,LD7,Champ5 Page4,LD48,Champ2 Page1,LD7,Champ6 Page4,LD48,Champ3 Page1,LD7,Champ7 Page4,LD60,Champ6 Page4,LD52,Champ7 Page1,LD3,Champ4 Page4,LD60,Champ7 Page4,LD52,Champ6 Page1,LD3,Champ5 Page4,LD60,Champ4 Page4,LD52,Champ5 Page1,LD3,Champ6 Page4,LD60,Champ5 Page4,LD52,Champ4 Page1,LD3,Champ7 Page4,LD60,Champ2 Page4,LD52,Champ3 Page4,LD60,Champ3 Page4,LD52,Champ2 Page1,LD3,Champ2 Page1,LD3,Champ3 Page3,LD39,Champ3 Page1,LD1,Champ6 Page3,LD39,Champ2 Page1,LD1,Champ7 Page1,LD1,Champ4 Page1,LD1,Champ5 Page3,LD39,Champ7 Page1,LD1,Champ2 Page3,LD39,Champ6 Page1,LD1,Champ3 Page3,LD39,Champ5 Page3,LD39,Champ4 Page3,LD44,Champ3 Page3,LD31,Champ3 Page2,LD25,Champ7 Page2,LD19,Champ4 Page1,LD11,Champ3 Page3,LD44,Champ2 Page3,LD31,Champ2 Page2,LD25,Champ6 Page2,LD19,Champ5 Page1,LD11,Champ2 Page3,LD42,Champ3 Page3,LD37,Champ3 Page2,LD25,Champ5 Page2,LD19,Champ6 Page3,LD42,Champ2 Page3,LD37,Champ2 Page2,LD25,Champ4 Page2,LD19,Champ7 Page3,LD44,Champ7 Page3,LD42,Champ5 Page3,LD37,Champ5 Page3,LD31,Champ7 Page2,LD25,Champ3 Page1,LD11,Champ7 Page3,LD44,Champ6 Page3,LD42,Champ4 Page3,LD37,Champ4 Page3,LD31,Champ6 Page2,LD25,Champ2 Page1,LD11,Champ6 Page3,LD44,Champ5 Page3,LD42,Champ7 Page3,LD37,Champ7 Page3,LD31,Champ5 Page2,LD19,Champ2 Page1,LD11,Champ5 Page3,LD44,Champ4 Page3,LD42,Champ6 Page3,LD37,Champ6 Page3,LD31,Champ4 Page2,LD19,Champ3 Page1,LD11,Champ4 Page4,LD59,Champ2 Page4,LD54,Champ5 Page3,LD38,Champ4 Page4,LD59,Champ3 Page4,LD54,Champ4 Page3,LD38,Champ5 Page4,LD54,Champ7 Page3,LD41,Champ2 Page3,LD38,Champ6 Page3,LD34,Champ2 Page1,LD14,Champ2 Page4,LD54,Champ6 Page3,LD41,Champ3 Page3,LD38,Champ7 Page3,LD34,Champ3 Page1,LD14,Champ3 Page4,LD59,Champ6 Page3,LD41,Champ4 Page3,LD34,Champ4 Page1,LD14,Champ4 Page4,LD59,Champ7 Page3,LD41,Champ5 Page3,LD34,Champ5 Page1,LD14,Champ5 Page4,LD59,Champ4 Page4,LD54,Champ3 Page3,LD41,Champ6 Page3,LD38,Champ2 Page3,LD34,Champ6 Page1,LD14,Champ6 Page4,LD59,Champ5 Page4,LD54,Champ2 Page3,LD41,Champ7 Page3,LD38,Champ3 Page3,LD34,Champ7 Page1,LD14,Champ7 Page4,LD56,Champ3 Page4,LD51,Champ2 Page3,LD45,Champ4 Page1,LD10,Champ4 Page1,LD9,Champ6 Page1,LD8,Champ5 Page4,LD56,Champ2 Page4,LD51,Champ3 Page3,LD45,Champ5 Page1,LD10,Champ5 Page1,LD9,Champ7 Page1,LD8,Champ4 Page4,LD50,Champ3 Page3,LD45,Champ6 Page1,LD10,Champ6 Page1,LD9,Champ4 Page1,LD8,Champ7 Page4,LD50,Champ2 Page3,LD45,Champ7 Page1,LD10,Champ7 Page1,LD9,Champ5 Page1,LD8,Champ6 Page4,LD56,Champ7 Page4,LD51,Champ6 Page4,LD50,Champ5 Page1,LD9,Champ2 Page4,LD56,Champ6 Page4,LD51,Champ7 Page4,LD50,Champ4 Page1,LD9,Champ3 Page4,LD56,Champ5 Page4,LD51,Champ4 Page4,LD50,Champ7 Page3,LD45,Champ2 Page1,LD10,Champ2 Page1,LD8,Champ3 Page4,LD56,Champ4 Page4,LD51,Champ5 Page4,LD50,Champ6 Page3,LD45,Champ3 Page1,LD10,Champ3 Page1,LD8,Champ2 Page3,LD32,Champ6 Page2,LD29,Champ3 Page1,LD12,Champ6 Page3,LD32,Champ7 Page2,LD29,Champ2 Page1,LD12,Champ7 Page3,LD32,Champ4 Page1,LD12,Champ4 Page3,LD32,Champ5 Page1,LD12,Champ5 Page3,LD32,Champ2 Page2,LD29,Champ7 Page1,LD12,Champ2 Page3,LD32,Champ3 Page2,LD29,Champ6 Page1,LD12,Champ3 Page2,LD29,Champ5 Page2,LD29,Champ4 Page4,LD46,Champ2 Page2,LD21,Champ3 Page1,LD5,Champ2 Page4,LD46,Champ3 Page2,LD21,Champ2 Page1,LD5,Champ3 Page2,LD27,Champ3 Page2,LD27,Champ2 Page4,LD46,Champ6 Page2,LD27,Champ5 Page2,LD21,Champ7 Page1,LD5,Champ6 Page4,LD46,Champ7 Page2,LD27,Champ4 Page2,LD21,Champ6 Page1,LD5,Champ7 Page4,LD46,Champ4 Page2,LD27,Champ7 Page2,LD21,Champ5 Page1,LD5,Champ4 Page4,LD46,Champ5 Page2,LD27,Champ6 Page2,LD21,Champ4 Page1,LD5,Champ5

[brice@brice-Lenovo-G505] [~/.../Crepe] $

Vous conviendrez que si je souhaite vérifier rapidement d'un vif coup d'œil si j'ai bien toutes mes clés, ce n'est actuellement pas très confortable...
De plus, le problème tout aussi embêtant (et ce pour quoi je pose ce sujet-question), est que mes clés n'apparaissent pas dans l'ordre alphabétique et arithmétique. J'ai donc deux problèmes en un.

Voilà donc pourquoi je viens vers vous afin de me mettre sur la voie mettre en forme mes clés pour une exploitation visuelle digne de notre époque, et merci beaucoup à vous pour avoir pris le temps de lire mon sujet. wink


EDIT : j'ai trouvé le moyen (tout bête) de faire s'afficher en ligne mes clefs de tableau, grâce à cette simple ligne de code :

for i in ${!tab[@]};do echo $i;done

Pour autant, ça ne les mets pas dans un ordre alphabétique-arithmétique, et je ne sais même pas si cette syntaxe et ces commandes seraient "compatibles" avec un moyen de les mettre dans l'ordre voulu... hmm

Dernière modification par Brice Jeunieaux (Le 24/12/2018, à 17:32)

Hors ligne

#2 Le 24/12/2018, à 16:57

Watael

Re : [Résolu] Tableaux : afficher liste de clefs par ordre alphabétique

salut,

attention, il faut TOUJOURS mettre les tableaux entre guillemets (c'est valable pour les variables en général) :

$ declare -A assAr=( ['foo bar']=fooBar ['bar baz']=barBaz )
$ for i in ${!assAr[@]}; do echo $i; done
bar
baz
foo
bar
$ for i in "${!assAr[@]}"; do echo $i; done
bar baz
foo bar

pour afficher les indices d'un tableau associatif dans un ordre donné, il n'y a pas d'autre moyen que d'appliquer sort.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 24/12/2018, à 17:31

Brice Jeunieaux

Re : [Résolu] Tableaux : afficher liste de clefs par ordre alphabétique

C'est clair, c'est concis, j'ai compris le gros intérêt des guillemets, et n'ayant pas pensé à 'sort', je pense pouvoir trouver une solution à mon problème, ce qui me permet donc de passer ce sujet en résolu.
Merci pour ton aide ! smile

Hors ligne