Estou tendo problemas para criar uma string RegEx para sed
.
Testei a expressão com vários serviços online e, lá, deu certo.
Mas não é assim com sed
, infelizmente.
Esta é a minha sed
expressão de teste:
echo "Windows" | sed -e 's/[Ww][Ii][Nn]([Dd][Oo][Ww][Ss])?/MATCH/g;'
E deve corresponder a "Win" ou "Windows" (e, é claro, "WIN" e "windOwS" e assim por diante). Mas não! (pelo menos não com sed
). O problema é que não posso tornar a segunda parte da string opcional. Os testadores RegEx online funcionam conforme o esperado, mas preciso que funcione na linha de comando.
Eu sei que existem muitos sabores de RegEx; então, provavelmente, eu não correspondo ao caminho certo.
Alguém pode me ajudar?
Sua expressão funcionará como uma expressão regular estendida. Usar
sed -E
:Com o GNU
sed
eu posso obter o mesmo efeito sem-E
(ou seja, quandosed
usa expressões regulares básicas) se eu escapar(
,)
e?
: