Como você está usando a sintaxe PCRE (Expressões regulares compatíveis com Perl) e sed
não entende isso, ela usa Basic Regular Expressions (BRE) por padrão. Não sabe nem \s
nem \d
. Você também está escapando de todos os tipos de coisas que não precisam ser escapadas (nem o \=
nem o \>
estão fazendo nada útil) enquanto não está escapando de coisas que precisam ser escapadas ( +
significa apenas o símbolo +
no BRE, você precisa de \+
para "um ou mais".
Isso deve fazer o que você precisa:
sed 's/" width="[0-9]\+">//g' file
Ou usando expressões regulares estendidas:
sed -E 's/"\s*width="[0-9]+">//g' file
Por fim, como regra geral, você nunca usa sed -i
sem primeiro testar sem o -i
para ter certeza de que funciona ou, se fizer isso, use pelo menos -i.bak
( -i
com qualquer texto fará isso) para criar um backup.