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

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

Re: [shell-script] Re: Problema com gre e acentos


From: Julio C. Neves
Subject: Re: [shell-script] Re: Problema com gre e acentos
Date: Mon, 3 Jun 2013 10:43:50 -0300

Algumas observações:
1 - O teu if está errado. Em Shell o if *testa instrução* e não condição.
Assim o teu teste correto deveria ter sido:

if  grep -i 'á|à|ã|é|è|ä|í|ó|ú' <<< "$Linha"
then ....

A opção -i do grep serve para ignorar caixa alta ou baixa. Veja
aqui<https://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo002#Eu_fico_com_o_grep_voc_com_a_gri>
.

Aprenda mais sobre if
aqui<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo003#O_Comando_if>e
continua
aqui<https://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#O_Comando_test>

Porém creio que o que vc quer deve ficar melhor com o uso do cmd case. Até
o bash 3.x, o bloco de cmds do case só tinha um terminador: o ;; que
encerrava o comando. Veja
aqui<https://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#Acaso_Casa_com_case>
.

A partir do bash 4.0 o case incorporou mais 2 novos terminadores: o ;;& que
não encerra o cmd, mas testa tb a próxima condição e o ;& que executa de qq
maneira a próxima condição. Aqui tem um
exemplo<https://wiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Novas_implementa_es_no_comando_c>muuuuuuito
parecido com esse que vc está propondo.

Como vc pode ver meu amigo, no Papo de Botequim (todos os links que passei
são de lá) tem tudo que vc precisa e um pouco mais. Como vc está começando
agora, vc não acha que vale a pena dar uma estudada no material, que é bom
e gratuito, e postar na lista somente as dúvidas?

Abcs,
Julio
*@juliobash
*



Em 2 de junho de 2013 23:20, nerobarrabas <address@hidden> escreveu:

> **
>
>
> OK, Leslie.
> Segui seu conselho e funcionou.
> E aí surgiu mais uma dúvida:
> Penso que seria mais prático eu testar se as linhas do arquivo contem
> caracteres alfanumericos, do que ter que colocar no parâmetro do grep todos
> os possíveis acentos e caracteres especiais.
> Imagina ter que incluir no parâmetro o ç, !@#%¨&*()_+=, etc etc.
> Então minha dúvida é se não tem uma maneira de chegar se no arquivo todos
> os caracteres são alfanumeríco.
> Será que é possível?
> Grato
>
> Diramos
>
> --- Em address@hidden, Leslie Watter <watter@...>
> escreveu
> >
> > A probabilidade de haver incompatibilidade de codificação de caracteres
> > entre o teu script e o arquivo em questão é enorme.
> >
> > Procure verificar qual a codificação do arquivo no qual vc está fazendo o
> > grep e salve o script com a mesma que vc tem grandes chances de ter
> sucesso
> > ;-)
> >
> > []s
> > LEslie
> >
> > 2013/6/2 nerobarrabas <diramos@...>
> >
> > > **
> > >
> > >
> > > Pessoal,
> > >
> > > Meu arquivo.txt contem a linha abaixo:
> > >
> > > Belem do Pará
> > >
> > > Estou fazendo um script para pegar linhas que contêm a string "á" e/ou
> "B"
> > >
> > > Fiz assim:
> > > #!/bin/bash
> > > cat arquivo.txt |
> > > while read linha; do
> > > if [ "$(echo $linha | grep 'á|à|ã|Á|À|Ã|é|è|ä|É|í|Í|ó|Ó|ú|Ú')" ];
> > > then
> > > echo "$linha contém um 'á'"
> > > fi
> > > if [ "$(echo $linha | grep 'B')" ];
> > > then
> > > echo "$linha contém um 'B'"
> > > fi
> > > done
> > >
> > > O resultado foi isso:
> > >
> > > ./acentos.sh
> > > Belem do Pará contém um 'B'
> > >
> > > Notem que quando procura pela scting "B" funciona, mas quando procura
> > > acentos, não funciona.
> > > Poderiam me dizer porque?
> > >
> > > Grato
> > >
> > >
> > >
> >
> >
> >
> > --
> > Leslie H. Watter
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>


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



reply via email to

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