|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 27 ![]() |
Bonjour à tous
Je suis relativement mauvais en programmation et je ne sais trop comment m'y prendre pour réaliser ce que l'on me demande... Je dispose d'une variable qui contient une chaine de type : INDEX_NAME ------------------------------ TABLE~1 TABLE~2 TABLE~3 TABLE~4 (il s'agit en fait de la liste index compris dans une TABLE oracle) Je dois faire en sorte de mettre chacun des "TABLE~X" dans une variable séparée sachant que : -TABLE est toujours la même chaine MAIS mon script doit être adaptable à d'autres TABLES, la longueur de cette chaine est donc variable. -Le nombre ~X peut aller de 1 à .... beaucoup J'ai remarqué qu'il y avait un espace devant chacune des valeurs, cela pourrait éventuellement être exploité, si ce n'est qu'il me ressortira également ------------------------------ puisqu'il est précédé d'un espace, il faudra donc ne pas le prendre en compte. Le seul caractère réellement intéressant est ~ car il sera toujours présent, ceci dit je ne connais pas la longueur des chaines qui le précèdent et le succèdent... Je ne sais trop comment me défaire de ce bourbier ! Merci d'avance pour votre aide |
|
|
10
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Bonjour,
Citation:
Citation:
quel shell ? Si tu peux utiliser autre chose qu'un shell strictement POSIX, il est probablement possible d'utiliser un tableau. |
||
|
|
10
|
|
|
#3 | |||
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
T'es obligé de faire ça en shell ? Parce qu'il y a des langages de scripts bien plus puissants. Par exemple en Python Code python :
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
|||
|
|
10
|
|
|
#4 | |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 27 ![]() |
Merci pour vos réponses
Citation:
Car je dois réorganiser la table en question ainsi que tous ses index (et ceci doit être dynamique donc le nom de ma table ainsi que le nom de tous les index doit être variabilisé.) J'utilise du KSH et je suis contraint d'utiliser ce langage. Après différents tests, je remarque que le début de ma chaine : INDEX_NAME ------------------------------ est de longueur fixe, je peux donc sans problème la faire sauter. Je me retrouverai alors avec : TABLE~1 TABLE~2 TABLE~3 TABLE~4... qui doivent aller se caler dans autant de variables que de "TABLE~X" Je dispose d'une requête qui me compte le nombre d'index donc je peux savoir jusqu'à quel nombre va mon X. Serait-il possible de remplacer chaque espace par un saut de ligne et ensuite lire chaque ligne de ma variable (je ne veux pas passer par un fichier). |
|
|
|
10
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Ça tombe bien, ksh supporte les tableaux !
on peut essayer : Code pour alimenter le tableau :
Code pour visualiser le tableau sans headers :
printf '%s\n' "${tableau[@]:2}" |
||
|
|
10
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 538 ![]() |
N_BaH fait une erreur, c'est suffisament rare pour être repéré :
on ne dit pas tanbleau mais tableau
|
|
|
02
|
|
|
#7 | |||||
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
Code bash :
ou bien Code bash :
Et tu as bien raison. Quand on peut éviter...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com