[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: regex en bash



On 2017-12-21 18:13 +0100, Daniel Caillibaud wrote:

> 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' ]]

Même si ça rentre probablement dans votre catégorie "assez
idiot", je tiens à signaler l'existence de la commande expr(1)
qui a l'avantage de fonctionner sur tout Unix. Contrairement à
quelque solution reposant sur Bash, Zsh ou l'option -E de sed
qui non seulement n'est pas standard mais n'est même pas
documentée. Ce qui est, comme chacun sait, toujours un bon
signe. :->

Si la regexp commence par "^"

  expr "$truc" : 'ma_regexp' >/dev/null

sinon

  expr "$truc" : '.*ma_regexp' >/dev/null

-- 
André Majorel <http://www.teaser.fr/~amajorel/>
bugs.debian.org, an essential online resource for spammers.


Reply to: