#1 Le 01/12/2009, à 00:46
- Hizoka
[resolu] combiner 2 actions bash type ${i#*.}
Bonsoir !
Je voulais savoir un petit truc en fait :
soit la variable test :
test="j.e.s.u.i.s.u.n.e.v.a.r.i.a.b.l.e"
disons que je veux supprimer tout ce qui se trouve avant le 3éme point, je fais :
test=${test#*.}
test=${test#*.}
test=${test#*.}
est-il possible de combiner les 3 actions en une seule ?
alors il existe cut mais bon... c'est juste une question comme ça
bonne nuit les n'enfants
Dernière modification par Hizoka (Le 01/12/2009, à 16:44)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#2 Le 01/12/2009, à 02:30
- AnsuzPeorth
Re : [resolu] combiner 2 actions bash type ${i#*.}
${test#*.*.*.}
Non ?
(peut etre devoir protéger le point ? Je sais jamais entre le bash et le regex )
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 01/12/2009, à 02:31
- Hizoka
Re : [resolu] combiner 2 actions bash type ${i#*.}
ouais ok mais avec un autre exemple (il était pourri celui la) :
test="j.e.s.u.i.s.u.n.e.v.a.r.i.a.b.l.e"
test=${test#*.}
test=${test%.*}
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 01/12/2009, à 02:42
- AnsuzPeorth
Re : [resolu] combiner 2 actions bash type ${i#*.}
???
Ben koi
???
Le même principe non ?
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#5 Le 01/12/2009, à 02:53
- Hizoka
Re : [resolu] combiner 2 actions bash type ${i#*.}
bah, la il faut lui dire, de virer avant le 1er "." et apres le dernier "."
/me à toujours un peu de mal...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 01/12/2009, à 02:58
- AnsuzPeorth
Re : [resolu] combiner 2 actions bash type ${i#*.}
Bon, c'est peut etre l'heure tardive qui fait ça, mais je comprends pas, tes exemples sont ok !
$ echo ${test#*.}
e.s.u.i.s.u.n.e.v.a.r.i.a.b.l.e
$ echo ${test%.*}
j.e.s.u.i.s.u.n.e.v.a.r.i.a.b.l
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#7 Le 01/12/2009, à 03:01
- Hizoka
Re : [resolu] combiner 2 actions bash type ${i#*.}
oui ça marche ça on est ok, mais existe-t-il un moyen de combiner les 2 en une commande ?
genre :${test#*. | %.*}
Dernière modification par Hizoka (Le 01/12/2009, à 03:01)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#8 Le 01/12/2009, à 16:20
- Totor
Re : [resolu] combiner 2 actions bash type ${i#*.}
et non ...:(
mais tu peux faire une fonction que tu places dans ton bashrc (ou .profile) et que tu exportes
#!/bin/bash
expand()
{
[ $# -lt 2 ] && { echo "Nombre de parametre invalide."; return 1; } >&2
nomVariable="$1"
variable="${!nomVariable}"
shift
for param
do
variable="$(eval "echo \"\${variable${param}}\"")"
[ $? -ne 0 ] && { echo "${!nomVariable}"; return; }
done
echo "${variable}"
}
export -f expand
toto="a/b/c.d"
expand toto "##*/" "%.*"
test="j.e.s.u.i.s.u.n.e.v.a.r.i.a.b.l.e"
test="$(expand test "#*." "#*." "#*.")"
echo "test=${test}"
Dernière modification par Totor (Le 01/12/2009, à 16:28)
-- Lucid Lynx --
Hors ligne
#9 Le 01/12/2009, à 16:43
- Hizoka
Re : [resolu] combiner 2 actions bash type ${i#*.}
ok merci pour l'info
"resolu"
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne