Dans une variable: Soustraire le dernier champ d'une arborescence
Résolu
Ka-El
Messages postés
279
Statut
Membre
-
dubcek Messages postés 19021 Statut Contributeur -
dubcek Messages postés 19021 Statut Contributeur -
Bonjour,
Je suis actuellement confronté à un problème.
Pour bien me faire comprendre, je vais utiliser l'exemple suivant:
J'ai la variable $KA-EL
celle-ci peut contenir l'information suivante:
Mon but est de travailler la variable $KA-EL afin que j'obienne dans une autre variable, les mêmes arborescences cités au dessus mais sans le "profile" à la fin.
Soit:
Comment puis-je obtenir ce résultat ?
Est-ce quelqu'un aurait une idée ?
Merci :-)
Je suis actuellement confronté à un problème.
Pour bien me faire comprendre, je vais utiliser l'exemple suivant:
J'ai la variable $KA-EL
celle-ci peut contenir l'information suivante:
echo $KA-EL
/toto/position/espace/troc/profile
ou
/tata/bateau/vac/profile
ou
/tonton/batterie etc.../profile
Mon but est de travailler la variable $KA-EL afin que j'obienne dans une autre variable, les mêmes arborescences cités au dessus mais sans le "profile" à la fin.
Soit:
echo $JO-REL
/toto/position/espace/troc/
ou
/tata/bateau/vac/
ou
/tonton/batterie etc.../
Comment puis-je obtenir ce résultat ?
Est-ce quelqu'un aurait une idée ?
Merci :-)
A voir également:
- Dans une variable: Soustraire le dernier champ d'une arborescence
- Vba range avec variable ✓ - Forum VB / VBA
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Range avec une Variable ✓ - Forum VB / VBA
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret? ✓ - Forum Python
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
3 réponses
Bonjour,
Avec quelque choses comme ca ?
:~$KA-EL="/toto/position/espace/troc/profile"
/* :~$ JO-REL = " '${KA-EL%p*}' " */ Attention j'ai modifier cette ligne
:~echo JO-REL
Tiens moi au jus
Avec quelque choses comme ca ?
:~$KA-EL="/toto/position/espace/troc/profile"
/* :~$ JO-REL = " '${KA-EL%p*}' " */ Attention j'ai modifier cette ligne
:~echo JO-REL
Tiens moi au jus
Salut,
man dirname;-)
$ var="/toto/position/espace/troc/profile"
$ dirname "${var}"
/toto/position/espace/troc
$ var="/toto/position/profile"
$ dirname "${var}"
/toto/position
hello
n'importe quel nom
n'importe quel nom
$ shopt -s extglob
$ var=/toto/position/espace/troc/profile
$ echo ${var%%+([[:alnum:]])}
/toto/position/espace/troc/
$
$ # pourquoi ceci ne fonctionne pas ?
$ echo ${var%!(/)}
/toto/position/espace/troc/profile
$ echo ${var%%!(/)}
$
Salut,
Comme toujours, avoir le réflexe
Extrait du man bash
Comme toujours, avoir le réflexe
man <commande>ou
help <commande>:
Extrait du man bash
shopt [-pqsu] [-o] [nom_opt ...]
Bascule la valeur des variables contrôlant le comportement optionnel du shell. Sans option, ou avec l'option -p, une liste de toutes les options configurables est affichée, avec l'indication de l'état de chacune d'entre elles. L'option -p réclame un affichage susceptible d'être réutilisé en entrée. Les autres options ont les significations suivantes :
-s Activer chaque nom_opt indiqué.
-u Désactiver chaque nom_opt indiqué.
-q Supprimer la sortie normale (mode silencieux). Le code de retour indique si l'option nom_opt est active ou non. Si plusieurs nom_opt sont fournis en argument de l'option -q, le code de retour est nul si tous les nom_opt sont actifs, et non-nul sinon.
-o Restreindre les valeurs des nom_opts à celles définies pour l'option -o de la commande set interne.
Si l'option -s ou -u est utilisé sans argument nom_opt, l'affichage est limité aux options qui sont actives ou inactives, respectivement. sauf indication contraire, les options shopt sont désactivés par défaut.
Le code de retour lors d'un affichage est zéro si tous les nom_opt sont actifs, non-nul sinon. Lors d'une activation ou inhibition, le code de retour est nul sauf si nom_opt n'est pas une option valide du shell.
$ help shopt
shopt: shopt [-pqsu] [-o] [nom_opt ...]
Active ou désactive des options du shell.
Change la valeur de chaque option du shell NOMOPT. S'il n'y a pas d'argument
à l'option, la commande liste toutes les options du shell en indiquant si
elles sont actives ou non.
Options :
-o restreint les NOMOPT à ceux définis pour être utilisés avec « set -o »
-p affiche chaque option du shell en indiquant son état
-q supprime l'affichage
-s active (set) chaque NOMOPT
-u désactive (unset) chaque NOMOPT
Code de retour :
Renvoie le code de succès si NOMOPT est active ; échec si une option non valable
est donnée ou si NOMOPT est inactive.
j'ai mis cette commande, car la man page de bash spécifie que:
pour reconnaitre les :
Si l'option extglob du shell option est activée par la commande shopt
pour reconnaitre les :
?(liste-motif) Correspond à zéro ou une occurrence des motifs indiqués *(liste-motif) Correspond à zéro ou plusieurs occurrences des motifs indiqués +(liste-motif) Correspond à une ou plusieurs occurrences des motifs indiqués @(liste-motif) Correspond à une occurrence exactement des motifs indiqués !(liste-motif) Correspond à tout sauf les motifs indiqués
C'est nickel, c'est exactement ce que je recherchais !
Merci beaucoup pour ton aide :-)