Pular para o conteúdo

Usando outros delimitadores em sed

Dica publicada em Linux / Comandos
Xerxes xerxeslins
Hits: 4.825 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Erro ao mixar Salix com Slackware - 'sh: /sbin/spkg: No such file or directory' [RESOLVIDO]

Tocar DVD no Arch Linux e no KahelOS

GNOME 3 completo no Ubuntu 12.10

Como encriptar o diretório home do seu usuário

Compilando UnNethack no Kubuntu 16.04

Wget - baixar tipo específico de arquivos de url

Fedora sem ifconfig [Resolvido]

Desmontando dispositivos ocupados (busy)

Resolva problemas de pacotes com automatix no Ubuntu / Debian

Bashburn: Grave CD/DVD pelo terminal

#1 Comentário enviado por hellnux em 24/03/2017 - 15:14h
Já usei o arroba como delimitador x]

Contribuir com comentário

Entre na sua conta para comentar.