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

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

Re: [shell-script] Exibição variaveis


From: mop
Subject: Re: [shell-script] Exibição variaveis
Date: Sat, 21 Apr 2007 21:49:02 -0300

Opa Julio:

Diante do tamanho da string, ainda assim, eu não exitaria em guardar
a saída de stdout em uma nova variável economizando os tubos, digo,
um pipe, mais ainda considerando ser o sed o destinatário.

Aproveitando, depois que enviei a mensagem me toquei que cometi um
erro. Ele não apareceu no bloco porque setei variável, mas de outra
forma poderia ter ficado claro. Octais são representados no shell
prefixados por \0 e hexadecimais por \x, ou seja, onde escrevi \15
deveria ter escrito \015. Eis como faz diferença:

prompt> z=$'\15\015';echo -ne "$z\15\015"|xxd
0000000: 0d0d 5c31 350d                           ..\15.

Prefiro sempre visualizar em hexa, por isso uso muito o xxd (vim).
Estou meio enferrujado no uso da base binária. :)

Quanto ao conteúdo do post, fique à vontade para usá-lo em qualquer
lugar, sendo de minha parte dispensada qualquer citação de origem.

Já vi o que falei, e muito mais, neste link:
http://planeta.dyndns.org/unix/exemplos.txt

Prefiro sempre que possível apenas citar links ao invés de teclar.
No histórico da lista vi como questões se repetem indefinidamente.
Bom seria uma consolidação em faq ou wiki, algo mais ágil na
consulta, mas é difícil manter.

[]s

------------------------------------------------------------------
>From: "Julio C. Neves" <address@hidden>
>Date: Sat, 21 Apr 2007 10:48:48 -0300
>
>Fala Mop,
>concordo totalmente com vc na afirmativa que "me parece um exagero a carga
>de um programa externo para retirar 1 byte de uma string de cerca de 16
>bytes", mas infelizmente a técnica de expansão de parâmetros aplica-se
>somente a variáveis e, se não me engano, o problema apresentado era em um
>arquivo que não estava sendo trabalhado em loop.
>
>Mas a dica é muito boa e acho que vc deveria mandá-la para o Cantinho do
>Shell das Dicas-l.
>
>Abração,
>Julio
>:wq
>
>Em 20/04/07, mop <address@hidden> escreveu:
>>
>> Apenas uma opinião:
>>
>> Claro que usar programas externos resolve, mas me parece um exagero
>> a carga de um para retirar 1 byte de uma string de cerca de 16 bytes.
>>
>> A linha no "unix" termina com x0A, assim como no "dos" e seus sucessores.
>> O detalhe é que a ms usa um "carriage return" (x0D) antes de cada
>> "new line" e esse byte sobra então no fim da linha em leitores tipo unix.
>> Preparei o bloquinho abaixo, já com new lines ignoradas, para colar direto
>> na console de uma vez e ver o resultado com uma tecla. Se não selecionar
>> nenhuma linha além do echo, o Enter fica por sua conta. :)
>>
>> z=$'ABC\rD\15E\x0dF';\
>> cat -v<<<$z;\
>> cat -v<<<${z%?};\
>> cat -v<<<${z/$'\r'};\
>> cat -v<<<${z//$'\r'};\
>> echo $z
>>
>> Tudo funcionou como esperava no:
>> $ bash -version
>> GNU bash, version 3.2.0(1)-release (i686-pc-linux-gnu)
>> Copyright (C) 2005 Free Software Foundation, Inc.
>>
>> Se a string já está numa variável e, supondo que se chame z, o último byte
>> pode ser retirado pelo próprio shell simplesmente com
>> ${z%?}
>>
>> Espero que seja de alguma utilidade.
>> Questões?
>> man bash
>>
>>
>> ------------------------------------------------------------------
>> >From: Fernando Garcia <address@hidden>
>> >Date: Fri, 20 Apr 2007 18:01:37 -0300
>> >
>> >Olha o que aparecia:
>> >
>> >n: Fa0/47;2;2;1;Shutdown^M$ (Lembra microsoft, acho q por isso nao
>> >funcionava :-D
>> >
>> >Removi com um sed e ta funcionando agora.



reply via email to

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