shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] SED: Inserir quebra de página após XX caracteres


From: Axcar, L. Miguel
Subject: Re: [shell-script] SED: Inserir quebra de página após XX caracteres
Date: Wed, 2 Jun 2010 12:18:43 -0300

Cristiano,

Usando só sed...

sed "s:[<SignatureValue>.*<\/SignatureValue>]:\n
$1:77;s:[<SignatureValue>.*<\/SignatureValue>]:\n $1:153;" arquivo

Com esse comando estou incluindo \n antes dos caracteres da posicao 77
e 153 que estão entre os blocos <SignatureValue> e </SignatureValue>.

Pra fazer direto uma alternativa copie esses XMLs pra um diretório
DIR, depois rodar:

for arquivo in $(ls DIR); do sed -i
"s:[<SignatureValue>.*<\/SignatureValue>]:\n
$1:77;s:[<SignatureValue>.*<\/SignatureValue>]:\n $1:153;" $arquivo;
done;

trocando DIR pela pasta que estão os XMLs

Importante: faça backup pois este "sed -i" está alterando no próprio arquivo.

Se não resolver poste aí de novo.

Abraço,

--
Luiz "Miguel" Axcar
address@hidden
Estudante de computação
Bauru, São Paulo, Brasil

"O próximo grande salto evolutivo da humanidade será a descoberta
de que cooperar é melhor que competir" (Pietro Ubaldi)

=====BEGIN FRACTAL-COMPRESSED SIGNATURE=====
!PGP0XA4E77CCB/KVC=1FCBE41048A009550F68867928EB8DDF
=====END FRACTAL-COMPRESSED SIGNATURE=====

A versão 2.6 do fractal-descompressor (em breve!) vai transformar isso
num MPEG de 72 minutos!




2010/6/2 Cristiano <address@hidden>
>
> Salve ilustres, bom dia.
>
> Estou tentando escrever um script usando o SED que identifique o conteúdo de 
> um campo dentro de um arquivo XML (tudo o que estiver entre as tags 
> <SignatureValue> e </SignatureValue>) e substitua este conteúdo por ele 
> mesmo, mas com uma quebra de linha a cada 76 caracteres.
>
> Pensei que daria para fazer com um loop, mas não sei como contar os 
> caracteres para fazer a quebra a cada 76. Estou esquentando os miolos ha um 
> par de horas e não consegui sequer um esboço do código.
>
> Alguém pode sugerir algo?
>
> <contexto>
> Um bug em nosso sistema de emissão de NFe fez com que uma enormidade de 
> arquivos XML fossem gerados com erro.
>
> A assinatura do XML da NFe tem 172 caracteres, demarcados com a tag 
> <SignatureValue></SignatureValue>.
>
> O problema é que os caracteres da assinatura devem ter uma quebra de linha a 
> cada 76 caracteres (ou seja, no lugar dos 77º e 153º caracteres).
>
> De uns dias para cá, embora envie o arquivo no formato correto para os 
> webservices da receita, ao receber de volta com o protocolo de autorização, 
> tal sistema tem gravado este arquivo em uma única linha, removendo todas as 
> quebras.
>
> Com isso, meus clientes não consegue validar meus XMLs, pois o validador da 
> receita busca esta assinatura no banco de dados deles e compara com a do 
> arquivo, que é diferente justamente por causa da falta das quebras.
> </contexto>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]