[Shell] manipulation de chaine

Résolu/Fermé
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 - 16 mai 2008 à 16:21
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 16 mai 2008 à 19:00
Bonjour,
j'aurai besoin de vos lumière sur un sujet que je ne métrise pas en shell.
Je récupère une chaine provenant d'une variable et je voudrait isoler une partie de celle-ci.

Explication :

var="home/to/titi.exe"

Résultat attendu :

titi.exe

besoin d'aide
Merci d'avance.
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
16 mai 2008 à 16:24
Salut,
[tmpfs]$ var="home/to/titi.exe"
[tmpfs]$ echo ${var##*/}
titi.exe
[tmpfs]$
;-))
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
16 mai 2008 à 16:28
Encore un grand merci jipicy. Ca marche comme d'habitude!!

Juste un petit truc peut tu si tu as le temps m'expliquer le principe de ${var##*/}

^^
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009
16 mai 2008 à 16:33
man bash -P 'less -p "^   Remplacement des paramètres"'
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
16 mai 2008 à 16:39
Merci
0
Quel langage?
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
16 mai 2008 à 16:30
C'était du ksh [Shell] mais le problème est déjà résolu.

Merci quand même.

PS : Si tu as une autre solution c'est toujours bon à prendre.
0
Non, c'est la meilleure soluce
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
16 mai 2008 à 16:35
echo ${var//*\//}
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
16 mai 2008 à 16:44
Pour echo ${var//*\//} :

test.sh[250]: ${var//*\//}: bad substitution


Et pour echo ${var##*/} c'est bon ça marche très bien.



^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 mai 2008 à 16:45
Salut,

allez un peu d'économie ;-)
root@debian:~# var="home/to/titi.exe"
root@debian:~# echo $var
home/to/titi.exe
root@debian:~# echo ${var/*\/}
titi.exe

0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
16 mai 2008 à 16:49
/home/to/ >var="home/to/titi.exe"
/home/to/ >echo $var
home/to/titi.exe
/home/to/ >echo ${var/*\/}
ksh: ${var/*\/}: bad substitution

Bizarre

^^
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009
16 mai 2008 à 16:51
en fait le test est fait sur bash et pas sur ksh ;-)
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
16 mai 2008 à 16:52
Okey merci désolé de ne pas avoir précisé mais echo ${var##*/} marche très bien en ksh.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 mai 2008 à 19:00
Chez ça marche avec ksh
$ echo $SHELL
/bin/ksh
$ var="home/to/titi.exe"
$ echo $var
home/to/titi.exe
$ echo ${var/*\/}
titi.exe
$

0