Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 01/12/2009, à 01: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 smile

bonne nuit les n'enfants wink

Dernière modification par Hizoka (Le 01/12/2009, à 17:44)

Hors ligne

#2 Le 01/12/2009, à 03: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  (En ligne)

Hors ligne

#3 Le 01/12/2009, à 03: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%.*}

Hors ligne

#4 Le 01/12/2009, à 03: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  (En ligne)

Hors ligne

#5 Le 01/12/2009, à 03: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...

Hors ligne

#6 Le 01/12/2009, à 03: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  (En ligne)

Hors ligne

#7 Le 01/12/2009, à 04: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, à 04:01)

Hors ligne

#8 Le 01/12/2009, à 17: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 wink

#!/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, à 17:28)


-- Lucid Lynx --

Hors ligne

#9 Le 01/12/2009, à 17:43

Hizoka

Re : [resolu] combiner 2 actions bash type ${i#*.}

ok merci pour l'info smile

"resolu"

Hors ligne

Haut de page ↑