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

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

Re: [shell-script] Manipular fichero imagen


From: T.Collons
Subject: Re: [shell-script] Manipular fichero imagen
Date: Tue, 11 Jul 2017 02:56:31 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

Muito Obrigado a todos


Funcionou perfeito Itamar. fise asi:

cat file |sed 's/>/>\n/g;s/</\n</g' |sed '/^ *$/d' |awk '/>/,/<\/binary>/ {if ($0 !~ /</) {for (i=1;i<length;i=i+80) printf substr($0,i,80) "\n";next}};1' > FileCut-80

o primei delimitador no awk es ">", porque a lina completa pode variar si e "jpg" ou "png" ou "gif",

exemplo jpg: <binary content-type="image/jpeg" id="i0">/9j/......<\/binary>

exemplo png: <binary content-type="image/jpeg" id="i0">iVBOR.......<\/binary>


(Espero no haber matado mucho el Brasileiro)


El 10/07/17 a les 02:44, address@hidden [shell-script] ha escrit:
 

Caro Collons

Assim como o Raul não sei se entendi direito, mas o que entendi é onde houver uma tag que identifique uma imagem Base64 dentro de um arquivo XML, precisa limitar o tamanho da linha, que segundo sua descrição deve ser de 79 caracteres, e manter as demais linhas intactas.

Baseado nisso vou considerar o conteúdo entre as tags <a> e </a> e limitar a linha com 5 caracteres nesse exemplo:

echo '12323434<a>bcdefghijklmnopqrstuvwxyz</a>90903459045' |
sed 's/>/>\n/g;s/</\n</g' |
sed '/^ *$/d' |
awk '/<a>/,/<\/a>/ {if ($0 !~ /</) {for (i=1;i<length;i=i+5) printf substr($0,i,5) "\n";next}};1'

Resultado:
12323434
<a>
bcdef
ghijk
lmnop
qrstu
vwxyz
</a>
90903459045

O mesmo código com mais tags e texto além do que interessa limitar:

echo '12323434<b>xxxxxxxxxxxxxxxx</b>yyyyyyyyyy<a>bcdefghijklmnopqrstuvwxyz</a>90903459045' | sed 's/>/>\n/g;s/</\n</g' |
sed '/^ *$/d' |
awk '/<a>/,/<\/a>/ {if ($0 !~ /</) {for (i=1;i<length;i=i+5) printf substr($0,i,5) "\n";next}};1'

Resultado:
12323434
<b>
xxxxxxxxxxxxxxxx
</b>
yyyyyyyyyy
<a>
bcdef
ghijk
lmnop
qrstu
vwxyz
</a>
90903459045


Seria isso?

Se for isso mesmo, apenas precisa redefinir os limites das tags que identifica a imagem em Base64, no caso no lugar das tags <a> e </a> do exemplo e o tamanho da linha dentro do awk, que no exemplo foi de 5.

O trecho " i=i+5 " também poderia ser " i+=5 " dentro do awk, apenas deixei dessa forma para ser mais claro.

Esse trecho " sed '/^ *$/d' " vai eliminar linhas adicionais em branco que surgem devido a tags juntas, mas também eliminará linhas em branco pré- existentes, se forem necessárias é preciso um trabalho para proteger essas linhas, algo como " sed 's/^ *$/_/' " antes do primeiro sed.


[]'s
Itamar


--



Pere

address@hidden




------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges d'empresa i altre informació confidencial tutelada per les lleis de Europea i altres estats, Si Vostè el rep per error o sense ser una de les persones esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el contingut del missatge i notificar-ho per correu electrònic a l'emissor del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de la legislació civil, penal i administrativa nacional i internacional.  

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other confidential information protected under the laws of and other territories. if you are not one of the intended recipients of the message, you are legally obliged to delete the message content. Furthermore, you are kindly requested to report immediately the incident to the sender.

Breach of confidentiality duties is a serious criminal offence in and other territories. Offenders shall be legally prosecuted worldwide. 

Thank you for your cooperation.




reply via email to

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