Très drôle et instructif ! Il faut lire complètement le man pour comprendre : An additional binary operator, =~, is available, with the same precedence as == and !=. When it is used, the string to the right of the operator is considered an extended regular expression and matched accordingly (as in regex(3)). The return value is 0 if the string matches the pattern, and 1 otherwise.
Du coup si : [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO KO On a ceci qui répond bien : [[ 'abcd' =~ ^ab ]] && echo ok || echo KO ok petite blague de Noël… > Le 21 déc. 2017 à 18:13, Daniel Caillibaud <[email protected]> a écrit : > > Bonjour, > > 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' ]] > > mais je n'arrive pas à utiliser ^ et $ dans mes regex, alors que man bash > semble dire que ça doit fonctionner comme d'habitude. > > Pourquoi > > $ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO > KO > > $ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO > KO > > ?? > > (je sais, avec zsh ces deux commandes renvoient ok comme on pourrait s'y > attendre…) > > -- > Daniel > > Vous ne sauriez croire avec quelle facilité l'impossible > se fait dès qu'il est nécessaire. > Anatole France > -- Pierre Malard « Si, comme le disait le général de Gaulle, la France n'avait pas été la France... on peut logiquement penser que tous les français auraient été des étrangers » ;-) Pierre Dac |\ _,,,---,,_ /,`.-'`' -. ;-;;,_ |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) πr perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. ,\ ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'\_): 24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print' - --> Ce message n’engage que son auteur <--
signature.asc
Description: Message signed with OpenPGP

