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

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

Re: ERRATA: while em arquivo texto


From: pinguimrmbr
Subject: Re: ERRATA: while em arquivo texto
Date: Tue, 02 Nov 2004 23:00:41 -0000
User-agent: eGroups-EW/0.82

> Perdoe-me se eu estiver errado mas a linha:
> egrep "^(\W)"
> nao ira selecionar apenas as linhas que contiverem "W"???

Nao... \W é um metacaracter do tipo "barra-letra" de expressoes 
regulares. Veja a tabela abaixo, extraida do excelente Guia de 
Referencia as Expressoes Regulares, do Aurelio:

b-l     nome            tradução
----------------------------------------------------
\a      alert           alerta (bipe)
\b      backspace       caractere Backspace
\e      escape          caractere Esc
\f      form feed       alimentação
\n      newline         linha nova
\r      carriage ret    retorno de carro
\t      htab            tabulação horizontal
\v      vtab            tabulação vertical
\d      [[:digit:]]     dígito
\D      [^[:digit:]]    não-dígito
\w      [[:alnum:]_]    palavra
\W      [^[:alnum:]_]   não-palavra
\s      [[:space:]]     branco
\S      [^[:space:]]    não-branco

O \W nega uma lista alfa-numerica. Entao, quando eu digo

egrep "^(\W)" arquivo.txt, estou dizendo a ele para procurar um 
caracter "nao alfa-numerico" no começo da linha. Como nao sei se o 
arquivo do menino usa espacos ou tabulacoes, mas sei que nao começa 
com uma letra, posso usar essa construcao

Para testar:

echo "String para testes" | egrep "^(\W)"

retorna nada, enquanto

echo "    String para testes" | egrep "^(\W)"

retorna

    String para testes

Se trocarmos W maiusculo por w minusculo, teremos o resultado inverso.

egrep "^\W", no exemplo acima, tem o mesmo efeito. Eu ainda poderia 
utilizar um quantificador, digamos \W+, e estaria casando UM OU MAIS 
(+) caracteres nao alfa-numericos.

Maiores informaçoes sobre RegEx:

http://guia-er.sourceforge.net/









reply via email to

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