[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