[Cascavel-pm] Script em Perl

rafamv1 rafamv1 em ig.com.br
Terça Fevereiro 27 05:41:59 PST 2007


 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 
> 
>---------- 




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