Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

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


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


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne