Aspas simples não podem ser inseridas entre aspas simples, por isso '\''
é a maneira padrão de "incorporar" uma aspa simples dentro de uma string entre aspas simples em uma linha de comando ou script de shell. Na verdade, não incorpora uma cota única, mas atinge o resultado final desejado.
'\''
= '
(cota final) \'
(cota com escape) e '
(cota inicial).
Em outras palavras, em vez de:
sed 's/'/"/g'
Uso:
sed 's/'\''/"/g
Como alternativa, as aspas duplas PODEM ser escapadas com escape de barra invertida entre aspas duplas, para que você possa usar:
sed "s/'/\"/g"
Tenha cuidado com este formulário - você tem que escapar dos meta-caracteres do shell que deseja que sejam tratados como literais de string entre aspas duplas. por exemplo. sed 's/foo/$bar/'
substitui foo pela string literal $bar
, enquanto sed "s/foo/$bar/"
substitui foo pelo valor da variável $bar
da shell atual (ou com nada se não estiver definido. Nota: alguns valores da variável $bar
pode quebrar o comando sed - por exemplo, se $bar
contiver um delimitador sem escape como bar='a/b'
, isso faria com que o comando sed fosse s/foo/a/b/
, um erro de sintaxe)