[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Verificar se string contém determinado caracter
From: |
Alexandre de Abreu |
Subject: |
Re: [shell-script] Verificar se string contém determinado caracter |
Date: |
Tue, 4 Oct 2005 12:55:34 -0300 |
Oi Luis,
Em bash é possÃvel utilizar o teste entre colchetes duplos utilizando
'glob', já o comando 'expr' é mais poderoso, dentre as funções dele, o
exemplo abaixo retorna a posição em que encontra o caracter ou 0 caso
não encontre.
-----------------8<---------------
#!/bin/bash
VAR=mensalao
[[ $VAR == *e* ]] && echo e:OK
[[ $VAR == *r* ]] && echo r:OK
expr $VAR : '.*e.*' && echo expr e:OK
expr $VAR : '.*r.*' && echo expr rOK
----------------8<---------------
A saÃda dele é:
e:OK
8
expr e:OK
0
Se vc quiser ler mais sobre 'expr', escrevi um tutorial sobre ele na Dicas-L :
Expr: Processamento de Strings utilizando Expressões Regulares
------------------------------------------------------------------------------------------------
http://www.dicas-l.com.br/dicas-l/20050527.php
Qualquer coisa, é só perguntar.
[]s
Alexandre de Abreu
On 04/10/05, Luis Fernando C. Talora <address@hidden> wrote:
> Amigos,
>
> Em um script em bash, coloquei uma rotina que checa a existência
> de um caracter especial dentro de uma string. Fiz isso utilizando
> "for":
>
> SIZE=${#VAR}
> for ((A=0;A<$SIZE;A++)) ; do
> if [ ${VAR:0:1} == "-" ] ; then
> echo "Encontrado - na posicao $A"
> break
> fi
> done
>
> Eu precisei utilizar essa rotina mais de uma vez em meu script.
> Como todo laço consome tempo e como shell scripting é tão
> flexÃvel, fiquei pesando se não haveria um operador que
> verificasse a condição abaixo:
>
> if [ "$VAR" <contém> "-" ] ; then
> echo "$VAR contém um '-'."
> fi
>
> Isso existe? Se existe, retorna a posição em que o caracter se
> encontra na string?
>
> Obrigado mais uma vez, pessoal!
>
> []´s
>
> LuÃs Talora
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
>
>
>
> Yahoo! Grupos, um serviço oferecido por:
>
> PlayStation 2 a partir de R$ 659! Parcele!Celular Motorola com câmera a
> partir de R$ 449!
> Siemens SL65 com câmera a partir de R$ 730! Câmeras Digitais a partir de
> apenas R$ 399! Parcele!
> CD Players Pioneer a partir de R$ 369!MP3 Player iPod a partir de R$ 799!
> Parcele!
> ________________________________
> Links do Yahoo! Grupos
>
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
--
Alexandre de Abreu, GCUX, RHCE