Qual versão do sed
você está usando? Eu acredito que o GNU sed deve suportar caracteres Unicode, e seu exemplo funciona para mim no Linux (Ubuntu, com o ambiente UTF-8).
Se você estiver usando uma versão do sed que não seja compatível com Unicode, seu grupo de caracteres será interrompido porque corresponde apenas a um byte. Se sua linha de comando estiver usando uma codificação UTF-8, quando você disser “
, um sed não-compatível com Unicode verá três bytes, \xE2
, \x80
e \x9C
. Isso aumentaria seu grupo de caracteres, que corresponderia apenas a um desses bytes por vez. Várias outras construções também falhariam, por exemplo. a”?
é a letra "a", em seguida, dois bytes seguidos por um terceiro byte opcional, portanto, a
por si só não corresponderia à expressão, embora pareça que deveria.
(Você pode querer considerar também a substituição do caractere de reticências por três pontos. Reticências é um caractere de compatibilidade no Unicode; geralmente é considerado mais moderno gravar os pontos e deixar a fonte cuidar da formatação.)