[Cascavel-pm] Script em Perl

rafamv1 rafamv1 em ig.com.br
Terça Fevereiro 27 07:45:02 PST 2007


 no meu continua removendo todo o conteúdo. Veja o meu script: 
-------------------------------------------------------------------- 

#!/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: \n"; 
chomp ($site=<>); 
} 
print {STDOUT}"site $& removido com sucesso\n", undef$_ if/^$site$/ 
------------------------------------------------------------------- 
Em (12:03:19), Cascavel Perl Mongers escreveu: 


>Aqui não... aqui ele remove só a linha q cabe na expressão: 
> 
>fernando em FCORREA ~ 
>$ cat sites.teste 
>www.google.com 
>www.uol.com.br 
>www.globo.com 
>www.lalala.org 
>www.kernel.org 
>www.perlmonks.org 
>www.pudim.com 
> 
>fernando em FCORREA ~ 
>$ arq2.pl 
>Insira o site a ser removido: www.globo.com 
>site www.globo.com removido com sucesso 
> 
>fernando em FCORREA ~ 
>$ cat sites.teste 
>www.google.com 
>www.uol.com.br 
>www.lalala.org 
>www.kernel.org 
>www.perlmonks.org 
>www.pudim.com 
> 
>fernando em FCORREA ~ 
>$ 
> 
>Em 27/02/07, rafamv1 escreveu: 
>> 
>> Continua removendo todo o conteúdo. 
>> 
>> Em (11:52:17), Cascavel Perl Mongers 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= )}print{STDOUT}"site $& 
>> >removido com sucesso\n",undef$_ if/^$site$/ 
>> > 
>> >Em 27/02/07, rafamv1 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 
>> >_______________________________________________ 
>> >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 
> 
>---------- 




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