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: Aurelio Marinho Jargas
Subject: Re: RES: [shell-script] Quebrar strings
Date: Tue, 22 Jun 2004 16:59:58 -0300 (ART)

oi fernando,

--- Fernando Lemes da Silva <address@hidden> escreveu:
 
>     Aurelio ou outro sábio da lista,

sábio? vixi, tem MUITO feijão ainda pra comer... ;)


> 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?)...

olha, teus testes te levaram a concluir isso, mas não é bem
assim.

  ${VAR/isso/aquilo}    ------>   sed s/isso/aquilo/
  ${VAR//isso/aquilo}   ------>   sed s/isso/aquilo/g

captou a diferença?

as duas barras é como o 'g' do sed, pra ele trocar várias
vezes, caso ache mais de uma. do canivete:

  http://aurelio.net/shell/canivete.html#toc4
  Expansão de Variáveis
  
  ${var/texto/novo}   Substitui 'texto' por 'novo', uma vez
  ${var//texto/novo}  Substitui 'texto' por 'novo', sempre

e no exemplo eu usei [^;] que NÃO É expressão regular, mas
sim o glob do shell, que nesse caso, por coincidência, tem
a mesma sintaxe e função da lista das ERs. novamente
recorrendo ao canivete:

  http://aurelio.net/shell/canivete.html#toc12
  Curingas para Nomes de Arquivo (glob)

  Curinga    Casa com...
  *          Qualquer coisa
  ?          Um caractere qualquer
  [...]      Qualquer um dos caracteres listados
  [^...]     Qualquer um caractere, exceto os listados
  {...}      Qualquer um dos textos separados por vírgula


e essa tabelinha já mata tua outra pergunta também:
 

> 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 ?

  $ arquivo="/etc/arquivo.config"
  $ echo ${arquivo%??}
  /etc/arquivo.conf
  $

o % na expansão de variáveis significa "corte a partir do final"
e o ?? indica dois caracteres quaisquer. como saber que % fazia
isso? canivete ;)

  http://aurelio.net/shell/canivete.html#toc4
  Expansão de Variáveis

  ${var%texto}      Corta 'texto' do final da string

beleza?

falouzz


=====
-- 
Aurelio Marinho Jargas, Curitiba, Conectiva
A odisseia verde no FISL http://aurelio.net/curso/fisl

______________________________________________________________________

Yahoo! Mail - agora com 100MB de espaço, anti-spam e antivírus grátis!
http://br.info.mail.yahoo.com/


reply via email to

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