[Cascavel-pm] Script em Perl

Fernando Oliveira fernandocorrea em gmail.com
Terça Fevereiro 27 05:31:14 PST 2007


E pq vc não usa algo parecido com o script q eu mandei?! ele faz
exatamente isso q vc falou...

repetindo:
<code>
perl -i.bkp -pe 'BEGIN{push @ARGV,"/etc/squid/arquivos/liberados/dl_geral";$s
ite=shift}print{STDOUT}"site $& removido com sucesso\n",undef$_
if/^$site$/' SITE
</code>


Em 27/02/07, rafamv1<rafamv1 em ig.com.br> escreveu:
>
>  Oi André, estou tentando aprimorar meus conhecimentos. Qualquer sujestão de
> site ou livro que você puder me passar, será uma boa ajuda. Quanto ao
> script, eu não quero criar um outro arquivo mas remover o site digitado como
> argumento para a variável $site da lista dl_geral. Recebi o script abaixo,
> no entanto ele remove todo o conteúdo do arquivo. Acho que seria o ">"...mas
> não estou entendendo a lógica de como retirar do arquivo apenas o conteúdo
> de $site.
> ----------------------------8<----------------------------
> #!/usr/bin/perl
>
> use warnings;
> use strict;
>
> my $arquivo = '/etc/squid/arquivos/liberados/dl_geral';
>
> open(LIBERADOS,$arquivo) or die "Nao pode abrir o arquivo $arquivo: $!";
> my @linhas = <LIBERADOS>;
> close (LIBERADOS);
> print "@linhas\n";
>
> # leitura
> print "Insira o site a ser removido: ";
> my $site = <STDIN>;
> chomp $site;
>
> # execução
> open(LIBERADOS,">",$arquivo) or die "Nao pode abrir o arquivo $arquivo: $!";
> foreach my $linha (@linhas){
>      if ($linha eq $site){
>           print "O site $site foi removido com sucesso\n";
>      }
>      else{
>           print LIBERADOS "$linha\n";
>      }
> }
> close(LIBERADOS) or die "Nao pode fechar o arquivo $arquivo: $!";
>
> else {
>      open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo
> $arquivo: $!" );
>      print ( LIBERADOS "\n$site" );
>      close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo $arquivo: $!"
> );
>      system("squid -k reconfigure");
>      print " O site foi adicionado com sucesso.\n";
> }
> ---------------------------->8----------------------------
>
>
>
> Em (08:28:49), Cascavel Perl Mongers escreveu:
>
>
> >Oi Rafael
> >
> >> #!/usr/bin/perl
> >>
> >> use warnings;
> >> use strict;
> >>
> >>
> >> my $arquivo = '/etc/squid/arquivos/liberados/dl_geral';
> >> open ( LIBERADOS,$arquivo ) or die ( "Nao pode abrir o arquivo: $!" );
> >Precisa melhorar o seu tratamento de erros... quem sabe com um
> >eval(perldoc.perl.org/functions/) pra
> >começar...(quem tiver idéia melhor, por favor não deixe de postar).
> >
> >> my @linhas = ;
> >> close (LIBERADOS);
> >> print "@linhas\n";
> >> print "Insira o site a ser removido: ";
> >> my $site = ;
> >> chomp $site;
> >> open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo: $!"
> );
> >
> >Quando você abre com '>>', significa que você adicionará coisas no
> >arquivo... Se você quiser abrir um novo
> >arquivo(se é que eu entendi o seu objetivo), você deve abrir com ">"(um
> >"sinal de maior" apenas). Desse modo
> >você perderá o conteúdo que estava lá(portanto cuidado, faça um backup se
> >for fazer isso).
> >
> >> my $linhas = "@linhas";
> >
> >Posso estar errado, mas não seria melhor ter um 'foreach' ou um 'map' por
> >aqui????
> >
> >> if ($linhas =~ $site) {
> >> #delete (LIBERADOS $site};
> >> s/$site/funcionou/gi;
> >> print "O site $site foi removido com sucesso\n";
> >> close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo: $!" );
> >> }
> >>
> >> else {
> >> open ( LIBERADOS,">>$arquivo" ) or die ( "Nao pode abrir o arquivo: $!"
> );
> >> print ( LIBERADOS "\n$site" );
> >> close ( LIBERADOS ) or die ( "Nao pode fechar o arquivo: $!" );
> >> system("squid -k reconfigure");
> >> print " O site foi adicionado com sucesso.\n";
> >> }
> >>
> >>
> >>
> >>
> >>
> >>
> >> Rafael Lebrao Martins.
> >> Cursando Ciências Contábeis.
> >> Universidade Estadual Do
> >> Sudoeste Da Bahia.
> >> Microsoft Certified
> >> Professional
> >> 70-271:Supporting Users and
> >> Troubleshooting a Microsoft(r)
> >> Windows(r) XP Operating System
> >> TEL - (77) 9989-6327
> >>
> >>
> >>
> >> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> >> Para alterar a categoria classificada, visite
> >>
> >http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=andre.garcia.carneir&_l=1,1172529719.159984.10939.alcala.hst.terra.com.br,5572,Des15,Des15
> >>
> >> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> >> Scan engine: McAfee VirusScan / Atualizado em 26/02/2007 / Versão:
> >5.1.00/4971
> >> Proteja o seu e-mail Terra: http://mail.terra.com.br/
> >>
> >
> >--
> >André Garcia Carneiro
> >Developer(Perl/PHP)
> >Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
> >
> >_______________________________________________
> >Cascavel-pm mailing list
> >Cascavel-pm em pm.org
> >http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >----------
>
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


-- 
[]'s Fernando


Mais detalhes sobre a lista de discussão Cascavel-pm