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

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

Re: RES: [shell-script] Quebrar strings


From: Gilberto Martins
Subject: Re: RES: [shell-script] Quebrar strings
Date: Tue, 22 Jun 2004 15:06:16 -0300

Em Ter, 2004-06-22 às 14:20, Fernando Lemes da Silva escreveu:

>     Aurelio ou outro sábio da lista,
> 
>     Poderiam me explicar o que acontece exatamente aqui ? Fiz alguns 
> testes e percebi que com as duas barras depois do nome da variavel ele 
> avalia o parametro seguinte como grupo de caracteres, com uma barra ele 
> analisa como uma string pura, mas nao consegui usar alguma expressao 
> regular (ou não tem jeito?)...


Como eu fui beneficiado pelo gesto do Aurélio, sinto-me na obrigação moral de 
tentar ajudar.


Manual do Bash:

       ${parameter/pattern/string}
       ${parameter//pattern/string}
              The pattern is expanded to produce a pattern just as in
pathname
              expansion.  Parameter is expanded and the longest match
of  pat-
              tern  against  its  value is replaced with string.  In the
first
              form, only the first match is replaced.  The second form 
causes
              all  matches  of pattern to be replaced with string.

Este é apenas um trecho. Vejamos:


# A="teste maior"               => Defino a variável A
# echo ${A/e/E}         => Substituo o PRIMEIRO "e" por "E" (maiúsculo)
tEste maior
# echo ${A//e/E}        => Substituo TODOS os "e" por "E" (maiúsculo)
tEstE maior




>     Por exemplo.. queria tirar os dois ultimos caracteres da string 
> arquivo="/etc/arquivo.config" usando este tipo de recurso, sem ter que 
> apelar para o sed ou cut.. é possivel ?


Não com este recurso, se vc considerar um string qualquer. Mas se eu
considerar este teu exemplo como uma constante, sim.

# arquivo="/etc/config.config"          => substitui arquivo por config
# echo ${arquivo//ig}                   => troca TODOS ig por NADA (del)
/etc/conf.conf
# echo ${arquivo//%ig}                  => troca o ÚLTIMO(%) ig por NADA
/etc/config.conf
# echo ${arquivo/%ig}                   => idem.
/etc/config.conf

Note que este símbolo (%) direciona a substituição para a string ao final da 
variável


Espero ter sido útil.


[]s




Gilberto Martins <g . martins (at) pobox . com>


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



reply via email to

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