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". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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 smile

bonne nuit les n'enfants wink

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

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%.*}

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...

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)

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 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, à 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 smile

"resolu"

Hors ligne

Haut de page ↑