Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#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  (Hors 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  (Hors 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  (Hors 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