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

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

Re: [shell-script] Problema com o Echo


From: Julio C. Neves
Subject: Re: [shell-script] Problema com o Echo
Date: Mon, 19 Mar 2007 15:25:41 -0300

Fala Uendel,
eu não sabia desta restrição do echo. Por via das dúvidas consultei o man e
o info sobre a instrução, mas nenhum dos dois comenta nada sobre esta
restrição.

De qq forma o cmd printf deverá fazer o que vc pretende. Para maiores
detalhes sobre seu uso, consulte www.julioneves.com. Lá escolha o link "Papo
de Botequim 009". A seção "Envenenando a Escrita" esmiuça o uso deste
comando.

Dei uma olhada rápida no código que vc submeteu e te dou um conselho: Troque

find /mnt/local/ArquivosErrados -name "*.prn" | while read i ;
do
    cat "$i" |
    while read linha
    do
        ...
        ...
    done
done

Por:

while read i ;
 do
    while read linha
    do
        ...
        ...
    done < "$i"
done < <(find /mnt/local/ArquivosErrados -name "*.prn")

Abração,
Julio
:wq

Em 19/03/07, address@hidden <address@hidden> escreveu:
>
>   Salve Salve toda comunidade de Shell Script
>
> Bem pessoal estou codificando o script abaixo sua função e ler arquivo
> achar o padrao %%Page: 1 1 ate %%Page: 3 3
> tira um intervalo de texto e cria um novo arquivo, ate ai funciona
> perfeito e me atende bem, o problema e que este e um arquivo
> Postscript possue linhas com mais de 256 caracteres o comando "echo" ate
> onde pesquisei e me informei so consegue echoar ate 256 caracteres (façam a
> correção se estiver errado!!) como vou conseguir echoar linhas com + de 256
> caracteres caso aja necessidade ????
> Segue o trecho do codigo:
>
> extrai_auto(){
> ini=1
> fim=3
> flag=1
> flag_cab=1;
> sed -i '1 d' /mnt/local/ArquivosErrados/autos;
> num_autos=$(echo $(sed -n "$=" /mnt/local/ArquivosErrados/autos ))
> auto="$( echo $( rac 1 /mnt/local/ArquivosErrados/autos ))"
> find /mnt/local/ArquivosErrados -name "*.prn" | while read i ;
> do
> cat "$i" |
> while read linha; do
> if [ "${linha:0:13}" = "%%Page: $fim $fim" -o "${linha:0:15}" = "%%Page:
> $fim $fim" -o "${linha:0:17}" = "%%Page: $fim $fim" -o "${linha:0:19}" =
> "%%Page: $fim $fim" -o "${linha:0:21}" = "%%Page: $fim $fim" ]; then
> flag=1 ;
> let n++;
> auto="$( echo $( rac $n /mnt/local/ArquivosErrados/autos ))"
> ini="$fim" ;
> let fim+=2 ;
> echo "gravando o auto: $auto"
> fi
> if [ "${linha:0:13}" = "%%Page: $ini $ini" -o "${linha:0:15}" = "%%Page:
> $ini $ini" -o "${linha:0:17}" = "%%Page: $ini $ini" -o "${linha:0:19}" =
> "%%Page: $ini $ini" -o "${linha:0:21}" = "%%Page: $ini $ini" ] ; then
> flag=0 ;
> flag_cab=0;
> fi
> if [ "$flag" -eq 0 ] ; then
> if [ "$flag_cab" -eq 0 ] ; then
> cat /mnt/local/ArquivosErrados/cab >> /mnt/local/ArquivosErrados/"$auto";
> flag_cab=1;
> fi
> #Grava dados no arquivo
> ######################## este cara vai ate 256 caracteres preciso de mais
> caracter por linha !!!################
> echo $linha >> /mnt/local/ArquivosErrados/"$auto" ;
>
> ############################################################################################
> fi
> done
> done
> }
>
> Certo quer serei ajudado antecipadamente agradeço
>
> Uendel
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


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



reply via email to

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