Imagino que seu arquivo esteja assim:

cat arquivo
lalal
lele
<SignatureValue>
dgdfgfd vbcvbcvbcv sddfhgdgb cvretghddg cvbcvbcvbvaczxc sdgdf dfgdfg 
dfgdfgdfgdfgdfgdfg
dgdfgfd vbcvbcvbcv sddfhgdgb cvretghddg cvbcvbcvbvaczxc sdgdf dfgdfg 
dfgdfgdfgdfgdfgdfg
dgdfgfd vbcvbcvbcv sddfhgdgb cvretghddg cvbcvbcvbvaczxc sdgdf dfgdfg 
dfgdfgdfgdfgdfgdfg
dgdfgfd vbcvbcvbcv sddfhgdgb cvretghddg cvbcvbcvbvaczxc sdgdf dfgdfg 
dfgdfgdfgdfgdfgdfg
</SignatureValue>
vbcvb
xxfglsd

Eu usei o seguinte:

sed '/<SignatureValue>/,/<\/SignatureValue>/!d; /SignatureValue/d; 
s/\(.\{73\}\)/\1\n/' arquivo

Explicando cada trecho do sed (execute passo a passo para entender melhor):

sed '/<SignatureValue>/,/<\/SignatureValue>/!d' arquivo

Extrai tudo entre as tags que vc quer.

sed '/<SignatureValue>/,/<\/SignatureValue>/!d; 
/SignatureValue/d' arquivo

Remove as tags

sed '/<SignatureValue>/,/<\/SignatureValue>/!d; 
/SignatureValue/d; s/\(.\{73\}\)/\1\n/' arquivo

Monta um grupo com 73 caracteres, e faz a substituição adicionando uma quebra 
de linha depois.

Não sei se resolve para o seu caso, mas já deve dar uma idéia.

Abraço

--- Em qua, 2/6/10, Cristiano <[email protected]> escreveu:

De: Cristiano <[email protected]>
Assunto: [shell-script] SED: Inserir quebra de página após XX caracteres
Para: [email protected]
Data: Quarta-feira, 2 de Junho de 2010, 10:35







 



  


    
      
      
      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>





    
     

    
    


 



  






      

[As partes desta mensagem que não continham texto foram removidas]

Responder a