> Zivjo!
> 
> Zopet je prisel cas, ko Borut razkazuje svoje bedno (ne)znanje
> programiranja. Tokrat bi rad naredil nekaj, kar bi iz vhodne datoteke
> porezalo vse, kar vsebuje dolocene izraze. Stvar (se) ne deluje, Camel
> book-a nimam pri roki, zato prosim za ideje...
> 
> trimlog.pl
Ni cisto jasno, ali bi rad kompletno pobrisal vrstice, ki vsebujejo 
dane izraze, ali samo pobrisal izraze.

#!/usr/bin/perl

$LOGFILE=$ARGV[0] ;     # Name of the file to be trimmed
@WORDS=('ppp',  # Lines containing these words will be cut out. Regex possible.
        'SLIP',
        'chat',
        ) ;

open(INFILE, $LOGFILE) or die ("Can't open $LOGFILE") ;
open(OUTFILE, ${LOGFILE}.out) or die ("Can't open ${LOGFILE}.out") ;

if ($ARGV[1] ne "") { @words=(); $words[0]=$ARGV[1]; }

while (<INFILE>) {
  trim($_,@words);
}

close(<INFILE>) ;
close(<OUTFILE>) ;
unlink($LOGFILE) ;
system("mv $LOGFILE.out $LOGFILE");

Ce hoces vrstice pometati ven, bo trim takle:

sub trim {
  $line=shift @_;
  foreach (@_) {
        return if $line=~/$_/;
  }
  print $_;
}

Ce pa hoces izraze pometati ven, pociscene vrstice pa vseeno natisniti, bi izgledalo 
pa takole:

sub trim {
   $line=shift @_;
   foreach (@_) {
       $line=~s/$_//g;
   }
   print $_;
}

Dalo bi se narediti se kup drugih izboljsav, ampak to kdaj drugic...
-- 
"My name is Not Important. Not to friends. 
    But you can call me mr. Important"  - Not J. Important 
[EMAIL PROTECTED]

Reply via email to