Le 22 déc. 2017 à 09:19, Jean-Marc a écrit :
Thu, 21 Dec 2017 18:13:19 +0100
Daniel Caillibaud écrivait :Pourquoi ?
$ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO
KO
$ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO
KO
??
Parce qu'entre guillemets, les caractères ^ et $ sont considérés comme des caractères normaux.
$ set -x
$ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO
+ [[ abcd =~ ^ab ]]
+ echo KO
KO
$ [[ 'abcd' =~ ^'ab' ]] && echo ok || echo KO
+ [[ abcd =~ ^ab ]]
+ echo ok
ok
$ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO
+ [[ abcd =~ cd$ ]]
+ echo KO
KO
$ [[ 'abcd' =~ 'cd'$ ]] && echo ok || echo KO
+ [[ abcd =~ cd$ ]]
+ echo ok
ok
un petit "set -x" fonctionne bien, même dans une session interactive.
Joyeux Noël !!!
Le 22 déc. 2017 à 09:19, Jean-Marc <jean-marc@6jf.be> a écrit :
Thu, 21 Dec 2017 18:13:19 +0100
Daniel Caillibaud <ml@lairdutemps.org> écrivait :
Pourquoi ?
$ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO
KO
$ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO
KO
??
Parce qu'entre guillemets, les caractères ^ et $ sont considérés comme des caractères normaux.
$ set -x
$ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO
+ [[ abcd =~ ^ab ]]
+ echo KO
KO
$ [[ 'abcd' =~ ^'ab' ]] && echo ok || echo KO
+ [[ abcd =~ ^ab ]]
+ echo ok
ok
$ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO
+ [[ abcd =~ cd$ ]]
+ echo KO
KO
$ [[ 'abcd' =~ 'cd'$ ]] && echo ok || echo KO
+ [[ abcd =~ cd$ ]]
+ echo ok
ok
un petit "set -x" fonctionne bien, même dans une session interactive.
Joyeux Noël !!!
Le 22 déc. 2017 à 09:19, Jean-Marc a écrit :
Thu, 21 Dec 2017 18:13:19 +0100
Daniel Caillibaud écrivait :Pourquoi ?
$ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO
KO
$ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO
KO
??
Parce qu'entre guillemets, les caractères ^ et $ sont considérés comme des caractères normaux.
$ set -x
$ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO
+ [[ abcd =~ ^ab ]]
+ echo KO
KO
$ [[ 'abcd' =~ ^'ab' ]] && echo ok || echo KO
+ [[ abcd =~ ^ab ]]
+ echo ok
ok
$ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO
+ [[ abcd =~ cd$ ]]
+ echo KO
KO
$ [[ 'abcd' =~ 'cd'$ ]] && echo ok || echo KO
+ [[ abcd =~ cd$ ]]
+ echo ok
ok
un petit "set -x" fonctionne bien, même dans une session interactive.
Joyeux Noël !!!
Ça va me motiver pour enfin passer à zsh ;-)
Ça va me motiver pour enfin passer à zsh ;-)
Ça va me motiver pour enfin passer à zsh ;-)
Je sais que bash a un opérateur =~ pour les regex, mais j'ai
du mal à faire ce que je veux avec et je continue avec sed /
awk / grep,
Mais faire du
[[ -z "$(echo $truc | sed -Ee 's/ma regex//')" ]]
est assez idiot quand on pourrait faire du
[[ "$truc" =~ 'ma regex' ]]
Je sais que bash a un opérateur =~ pour les regex, mais j'ai
du mal à faire ce que je veux avec et je continue avec sed /
awk / grep,
Mais faire du
[[ -z "$(echo $truc | sed -Ee 's/ma regex//')" ]]
est assez idiot quand on pourrait faire du
[[ "$truc" =~ 'ma regex' ]]
Je sais que bash a un opérateur =~ pour les regex, mais j'ai
du mal à faire ce que je veux avec et je continue avec sed /
awk / grep,
Mais faire du
[[ -z "$(echo $truc | sed -Ee 's/ma regex//')" ]]
est assez idiot quand on pourrait faire du
[[ "$truc" =~ 'ma regex' ]]