[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Letras e numeros
From: |
Alexandre Mulatinho |
Subject: |
Re: [shell-script] Letras e numeros |
Date: |
Wed, 25 Aug 2010 10:33:26 -0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 |
Bom dia galera,
On 08/25/2010 10:25 AM, jrsreis wrote:
>
>
> Olá pessoal
>
> Aproveitando a dica de vocês, eu fiz o seguinte script para entrar com
> nome:
>
> echo -n "Entre com nome: "
> read NOME
>
> if [ -z $NOME ]
> then
> echo "Nome não informado!"
> else
> echo "$NOME" | sed -r 's/\b[a-z]+/\u&/g'
> fi
>
> Como faço para tratar a variável nome para aceitar somente letras e
> espaços
>
Você pode fazer um teste depois do read, ou seja, você guarda o input
numa variável qualquer e depois a testa com o 'egrep'.
if echo $NOME | egrep '[0-9]' 2>&1 >/dev/null
then
esta variavel tem um numero
else
esta variavel nao tem numeros
fi
Já para verificar se há letras:
echo $FONE | egrep -i '[a-zA-Z]'
Se você quiser tirar as letras de uma variável, use o 'sed' com seu
subcomando de substituir letras/palavras, dessa forma:
tFONE=`echo $FONE | sed -e 's/[a-zA-Z]//g'`
Lembrando que o conteúdo escrito dentro de colchetes (o caracter '[' e
']') é uma expressão regular que nesse caso indica que tipo de caracter
voce quer buscar.
Espero ter ajudado,
Mulatinho.
> O outro é o seguinte:
>
> echo -n "Entre com telefone: "
> read FONE
>
> if [ -z $FONE ]
> then
> echo "Telefone não informado!"
> else
> echo "$FONE"
> fi
>
> Nesse caso, gostaria que aceitasse somente número, com o caracter "-"
>
> Exemplo:
> Aceitar
> 22-123456
> 21-456123
>
> Negar
> aa123
> aa-452
>
> Obrigado
>
--
Alexandre Mulatinho
Analista de Suporte/Sistemas
Blog: http://mulatinho.wordpress.com
Mail: address@hidden
Fone: +55 81 92781715
[As partes desta mensagem que não continham texto foram removidas]