hamacker wrote:

Oi gente, eu tenho seguinte codigo que gera um relatorio e grava o resultado+sumario numa variavel chamada output :
chop($output = `/usr/bin/myreport $name`);


a variavel $output tem 8 linhas finais que � um sumario que eu gostaria de retirar, como eu fa�o para que as ultimas 8 linhas sejam suprimidas ? Entendo necas de perl. Tentei resolver usando bash, mas ainda nao encontrei uma solucao com |grep que me permitisse suprimir as oito linhas finais. Allguem mais entendido em perl poderia me dar uma ajuda ?

[]'s



Fiz o programa a seguir e espero ter ajudado, ele vai imprimir o arquivo texto suprimindo as ultimas 8 linhas. Altere a variavei $filename
pro arquivo original e altere tb a linha "open(STDOUT.">services2");" onde services2 e o arquivo txt ja
formatado contendo o arquivo original menos as oito ultimas linhas.


#!/usr/bin/perl
# services2 e o arquivo de saida do programa:
open(STDOUT,">services2");
$filename = services;
$lines = 0;
open(FILE, $filename) or die "Can't open `$filename': $!";
while (sysread FILE, $buffer, 4096) {
$lines += ($buffer =~ tr/\n//);
   }
close FILE;
$line_8 = $lines - 7;
print("$line_8\n");
@filename_final = `cat services`;
$x = 1;
foreach (@filename_final) {

       print("$_");
       $x++;
       if ($x == $line_8) {
                      exit(0)
              }

}

--
"Primeiro eles o ignoram.
Depois, riem de voce.
Chega um ponto em que lutam contra voce.
Ate o dia em que voce vence." Gandhi

SlackWare user #349702




--------------------------------------------------------------------------- Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a