[Cascavel-pm] Script em Perl

Fernando Oliveira fernandocorrea em gmail.com
Terça Fevereiro 27 06:56:07 PST 2007


assim deve ficar + facil de entender:

#!/usr/bin/perl -i.bkp -p
BEGIN{
   $|=1;
   push em ARGV,"/etc/squid/arquivos/liberados/dl_geral";
   print{STDOUT}"Insira o site a ser removido: ";
   chomp($site=<STDIN>)
}
print{STDOUT}"site $& removido com sucesso\n",undef$_ if/^$site$/

Em 27/02/07, Fernando Oliveira<fernandocorrea em gmail.com> escreveu:
> foi mau... na verdade ficaria assim:
>
> #!perl -i.bkp -p
> BEGIN{$|=1;push
> @ARGV,"/etc/squid/arquivos/liberados/dl_geral";print{STDOUT}"Insira o
> site a ser removido: ";chomp($site=<STDIN>)}print{STDOUT}"site $&
> removido com sucesso\n",undef$_ if/^$site$/
>
> Em 27/02/07, rafamv1<rafamv1 em ig.com.br> escreveu:
> >
> >  O Script removeu todo o conteúdo do arquivo.
> >
> > Em (11:45:17), Cascavel Perl Mongers escreveu:
> >
> >
> > >tá faltando o nome do arquivo...
> > >
> > >push @ARGV, "/etc/squid/arquivos/liberados/dl_geral";
> > >
> > >e aqui: $site=shift; vc tá escrevendo por cima da variavel...
> > >ficaria assim:
> > >
> > >#!/usr/bin/perl -i.bkp -p
> > >BEGIN{push @ARGV, "/etc/squid/arquivos/liberados/dl_geral";print
> > >"Insira o site a ser removido:\n";chomp($site=<>);print{STDOUT}"site
> > >$& removido com sucesso\n",undef$_ if/^$site$/
> > >
> > >Em 27/02/07, rafamv1 escreveu:
> > >> Alterei o script mas não remove o site do arquivo.. Ficou assim:
> > >> #!/usr/bin/perl -i.bkp -p
> > >> BEGIN{push
> > >> print "Insira o site a ser removido: \n"
> > >> $site = ;
> > >> chomp $site;
> > >>
> > >@ARGV,"/etc/squid/arquivos/liberados/dl_geral";$site=shift}print{STDOUT}"site
> > >> $& removido com sucesso\n",undef$_ if/^$site$/
> > >>
> > >>
> > >>
> > >>
> > >> Em (11:31:37), Cascavel Perl Mongers escreveu:
> > >>
> > >>
> > >> >vc tem q passar o site como parametro... por exemplo:
> > >> >
> > >> >./remove_site.pl URL
> > >> >
> > >> >Em 27/02/07, rafamv1 escreveu:
> > >> >>
> > >> >> criei o script abaixo, ele executa mas não altera em nada o arquivo e
> > >nem
> > >> >> me pede o site para remoção.
> > >> >>
> > >> >> Em (11:21:27), Cascavel Perl Mongers escreveu:
> > >> >>
> > >> >>
> > >> >> >#!/usr/bin/perl -i.bkp -p
> > >> >> >BEGIN{push
> > >> >>
> > >>
> > >>>@ARGV,"/etc/squid/arquivos/liberados/dl_geral";$site=shift}print{STDOUT}"site
> > >> >> >$& removido com sucesso\n",undef$_ if/^$site$/
> > >> >> >
> > >> >> >Em 27/02/07, rafamv1 escreveu:
> > >> >> >> Cara, não consegui colocar seu script para funcionar. Tentei criar
> > >um
> > >> >> >> arquivo .pl com o conteúdo, mas não funcionou.
> > >> >> >>
> > >> >> >>
> > >> >> >> Em (10:45:25), Cascavel Perl Mongers escreveu:
> > >> >> >>
> > >> >> >>
> > >> >> >> >pode...
> > >> >> >> >
> > >> >> >> >Em 27/02/07, rafamv1 escreveu:
> > >> >> >> >> Mas eu posso colocar esse script que você mandou em um arquivo
> > >.pl
> > >> ?
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >> Em (10:31:14), Cascavel Perl Mongers escreveu:
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >> >E pq vc não usa algo parecido com o script q eu mandei?! ele
> > faz
> > >> >> >> >> >exatamente isso q vc falou...
> > >> >> >> >> >
> > >> >> >> >> >repetindo:
> > >> >> >> >> >
> > >> >> >> >> >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
> > >> >> >> >> >
> > >> >> >> >> >Em 27/02/07, rafamv1 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 = ;
> > >> >> >> >> >> close (LIBERADOS);
> > >> >> >> >> >> print "@linhas\n";
> > >> >> >> >> >>
> > >> >> >> >> >> # leitura
> > >> >> >> >> >> print "Insira o site a ser removido: ";
> > >> >> >> >> >> my $site = ;
> > >> >> >> >> >> 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
> > >> >> >> >> >_______________________________________________
> > >> >> >> >> >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
> > >> >> >> >_______________________________________________
> > >> >> >> >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
> > >> >> >_______________________________________________
> > >> >> >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
> > >> >_______________________________________________
> > >> >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
> > >_______________________________________________
> > >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
>


-- 
[]'s Fernando


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