Você precisa de uma cotação entre aspas invertidas, fora das citações simples:
sed 's/"/'\''/g'
Quando as cordas são justapostas, elas se tornam uma cadeia. Então você pode citar as partes de forma diferente, com "" ou "" ou \.
Recentemente, fiz o download de um modelo de site de álbum de fotos e quero facilitar a adição de fotos para o meu companheiro de viagem experiente não tecnológico.
Ele usa um arquivo XML que requer edição cada vez que as fotos são adicionadas e o script de atualização que eu escrevi está quase completo, só precisa ter todas as suas aspas simples ( '
) alteradas para aspas duplas ( "
) .
Encontrei e joguei com sed "s/\"/'/g"
sem sucesso, recebendo um "erro de cotação não terminado". Qualquer ajuda seria muito apreciada.
Você precisa de uma cotação entre aspas invertidas, fora das citações simples:
sed 's/"/'\''/g'
Quando as cordas são justapostas, elas se tornam uma cadeia. Então você pode citar as partes de forma diferente, com "" ou "" ou \.
Você pode usar tr
to tr
anslate de um conjunto de caracteres para outro. (Nota: este é o conjunto de caracteres como em "um conjunto de caracteres", não como em "uma codificação de caracteres e seus glifos associados" como ISO-8859-1.) Você quase certamente não precisa usar sed
e expressões regulares para isso.
A sua pergunta não é clara em relação a qual direção você deseja ir porque o comando sed
faria o oposto do que você diz ser seu objetivo, mas para traduzir de '
para "
, você pode usar (evitando aqui uso inútil de cat
):
tr \' \" <inputfile >outputfile
Para traduzir de "
para '
, use:
tr \" \' <inputfile >outputfile
Note que as barras invertidas são importantes, pois protegem as citações de serem interpretadas especialmente pelo shell. No momento em que tr
visualizar os parâmetros, as barras invertidas serão removidas.
Tenha cuidado para não reescrever cegamente todo o arquivo XML; que parece causar um comportamento indesejável.