Duas dicas:
-
Você não pode escapar de uma única citação dentro de uma string entre aspas simples. Então você tem que fechar a cotação, adicionar uma cotação de escape, em seguida, abra as aspas novamente. Ou seja:
'foo'\''bar', que é dividido como:-
'foo'cotadofoo -
\'escape' -
'bar'cotadobar
rendendo
foo'bar. -
- (opcional) Você não precisa necessariamente usar
/in sed. Acho que usar/e\na mesma expressão sed dificulta a leitura.
Por exemplo, para remover as aspas deste arquivo:
$ cat /tmp/f
aaa"bbb"'ccc'aaa
Considerando minhas duas dicas acima, o comando que você pode usar para remover aspas duplas e simples é:
$ sed -e 's|["'\'']||g' /tmp/f
Com base na minha primeira dica, o shell reduz o segundo argumento do sed
(isto é, a string após o -e ) para s|["']||g e passa essa string para sed.
Com base na minha segunda dica, o sed trata o mesmo que s/['"]//g .
Isso significa
remove all characters matching either
'or"(i.e., replace them with nothing)
Você provavelmente precisa de algo mais complexo do que isso para fazer o que quiser, mas é um começo. Espero que ajude.