O GNU sed
aceita um escape +
, portanto, se seu sed
for compatível com GNU, você pode fazer:
$ echo "abbbbc" | sed 's/ab\+c/def'
def
$ echo "abbbbc" | sed "s/ab\+c/def"
def
$ echo "abbbbc" | sed s/ab\+c/def
def
O comando sed
especificado pelo POSIX (mais geralmente disponível) usa apenas POSIX BREs (expressões regulares básicas ) por padrão. Se o seu sed
for compatível com POSIX, mas não compatível com GNU e você quiser que x+
aja como xx*
, então você quer a opção -E
:
$ echo "abbbbc" | sed -E 's/ab+c/def/'
def
Algumas implementações não-GNU de sed
incluem -r
como sinônimo de -E
, para compatibilidade com versões mais antigas do GNU sed
. A sintaxe -E
é POSIX e o% GNU sed
aceita ambas.