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