[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/