Usando outros delimitadores em sed

Publicado por Xerxes em 24/03/2017

[ Hits: 4.166 ]

 


Usando outros delimitadores em sed



Dica testada no Debian Jessie 8.7.1.

Uma vez precisei importar edições de uma revista em OJS para outro OJS. Os arquivos das edições são exportados e importados em XML.

A exportação ocorreu sem problemas. Mas na importação me deparei com um erro assim:

DB Error: Column 'email' cannot be null
Após verificar o arquivo não encontrei nenhum campo <email></email> vazio. Mas então, depois, percebi que alguns autores de artigos estavam sem o campo do e-mail, sem as tags mesmo. Eu corrigi manualmente inserindo as tags, mesmo deixando-as vazias e a importação ocorreu sem problemas.

Depois me deparei com o mesmo problemas em outras edições.

Para facilitar minha vida resolvi usar um comando para inserir as tags faltantes sempre que o erro acontecia.

O comando ficou assim:

sed 's#</country></author>#</country><email></email></author>#g' arquivo.xml arquivo-novo.xml

Eu sabia que esse comando (sed) existia, mas eu usava muito "\" para escapar as barras das tags, o que deixava tudo muito confuso. Então achei uma dica que dizia que era possível trocar os delimitadores por outra coisa, no caso o "#".

E funcionou. Eu não sabia, até então, que era possível usar outros delimitadores em sed.

Fica a dica!

Obs.: antes de descobrir como contornar esse erro no XML eu pedia para um colega de trabalho corrigir para mim. Obrigado Fábio!

Fonte: linux - search and replace html tags (with slashes) in sed - Stack Overflow

Outras dicas deste autor

Controle de volume não funciona no LXDE?

Instalação do mps-youtube no Fedora

Impressora Canon mg2900 no Debian

Alias para atualizar apt e flatpak

Checagem da segurança de atualização do Debian pelo terminal

Leitura recomendada

Autostart no GNOME

Vídeo do LinuxTips - Descomplicando o Docker - Parte 2

Pgrep e pkill

GRUB2 - Resolvendo o erro unknown filesystem - grub rescue

Copiar arquivos com Samba via smbclient

  

Comentários
[1] Comentário enviado por hellnux em 24/03/2017 - 15:14h

Já usei o arroba como delimitador x]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts