[Cascavel-pm] Duvida com grep
Luis Campos de Carvalho
lechamps em terra.com.br
Sexta Maio 14 16:24:50 CDT 2004
vivan em dim.fm.usp.br wrote:
> Gente,
>
> Eu tenho um arquivo que tem, entre outras informacoes, varios numeros de
> telefone, e quero encontrar um determinado. O problema eh q nesse arquivo,
> o numero do telefone pode estar "quebrado" ao final da linha. Ex:
>
> fljlfl lfjkç oeuooi nv,zvn. lllçafs (11)3333-3333 safadf vbvb
> lflf dfljaasfi hasdhf w (15)2222-2200 djasdfkçldf dfsajlkç ll
> laflçafdslç ldflçafsdçl (47)1234-5678 dsfafsdaasdf dff (97)25
> 87-0000 asdfpadf dsaf~çjasfdjl dsffçdçl dsf (33)3333-3333 ssf
> dfasffdasfdflasfldçlçadfjlçljkdfsljkçajlçkjklçafdsljkçasfdljk
> lkafsjjasdflkçfjjklfdsajlkçkjlfdsjklfasdjklfjklfsdaljksfljkas
>
> Como devo proceder, utilizando grep (em shell script e/ou em perl)?
>
grep para coisas multilinhas é meu Calcanhar-de-Aquiles...
Acho que em perl fica mais simples... segue o programinha, não
testei, claro.
#!/usr/bin/perl -w
local $/ = undef;
open IN, shift or die "$!\n";
$data = <IN>;
close IN or die "$!\n";
$sep = qr/[\s\.\(\)\-]*/;
# procuro por '55452600'
$phone = qr/5 $sep 5 $sep 4 $sep 5 $sep 2 $sep 6 $sep 0 $sep 0/xm;
my @phone = $data =~ m/($phone)/xmg;
local $,=$\;
print "@phone$\";
__END__
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm