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

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

Re:_[shell-script]_escrever_at�_encontrar_determinada_string


From: moysespr
Subject: Re:_[shell-script]_escrever_até_encontrar_determinada_string
Date: Wed, 14 Jan 2004 11:17:58 -0800 (PST)

"Poderia da mesma forma fazer na própria shell, lendo até
que encontrasse o padrão..."

Isso já tentei várias vezes, inclusive hoje e,  mesmo consultando sempre Mr.
Man Bash não estou achando meu erro. Como gosto de usar o bash plenamente
gostaria de juntar:
<&3
>arq.tmp
<<.
e experimentar, dispensando cat, etc.

Eu vinha usando o read do bash e o echo com sucesso, mas ao surgirem linhas
como esta "a\\bc" coisas indesejadas começam a acontecer. O melhor é uma
escrita/leitura binária, sem interpretações, que acredito, o < e o > podem
fazer.

A questão é como juntar isso?!



--- Felipe Kellermann <address@hidden> wrote:
> 
> On Wed, 14 Jan 2004 5:48am  -0800, moysespr wrote:
> 
> > Ainda não achei a solução para a seguinte questão:
> 
>       Ae Moyses,
> 
> 
> > Em um script tenho um socket recebendo dados de um determinado servidor e
> ao
> > encontrar uma string específica é necessário encerrar a coleta e retornar o
> > controle para o script. Em termos de problema é como ter um arquivo no
> disco e
> > dar um "cat arquivo", onde a saída seria truncada na tal string.
> 
>       Que neste caso poderia ser usado o `split', mas mesmo assim IIRC
> não há nenhuma forma de especificar quantas são as partes ('contextos')
> que tu quer pegar. Vou ver melhor isto, depois.
> 
> 
> > A string specifica no momento é ponto sózinho em uma linha, só que as
> linhas
> > não são terminadas apenas com hexa 0a (como no unix) mas com 0d0a (como no
> > DOS). A seqüência de bytes de encerramento é então 0d 0a 2e 0d 0a.
> 
>       Acho que é mais fácil imaginar a linha apenas como '2e 0d 0a'.
> 
> 
> > Em outras situações posso precisar fazer encerramento após receber "n"
> bytes.
> > Isso eu consegui com o "dd", mas não sei se é a solução mais indicada.
> 
>       Na minha opinião, sim.
>       Uma outra alternativa poderia ser o 'split' ou o 'head', também.
> 
> 
> > Poderiam apresentar as diversas opções possíveis?
> 
>       Tu tá usando os devices especiais, não é? Bom, mas mesmo se não
> for, depois de estar com algum `device' já especificado para pegar os
> dados, uma das alternativas poderia ser:
> 
>       sed '/^.\r$/q' <&p && retorna e fecha o device p
> 
>       Se for preciso ficar sem o ponto, só modificar um pouco o sed ou
> tirar depois ele. Poderia da mesma forma fazer na própria shell, lendo até
> que encontrasse o padrão e depois 'p<&-'. Ou também poderia ser feito com
> awk ou qualquer coisa, :-)
> 
> -- 
> Felipe Kellermann
> 


__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus


reply via email to

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