[sanniolug] Re: aiuto per awk

  • From: Angelo <magheggio@xxxxxxxx>
  • To: sanniolug@xxxxxxxxxxxxx
  • Date: Wed, 28 Nov 2007 15:42:35 +0100 (CET)

> > Ho trovato la soluzione.....
> > Perl!
> Ottimo, faccela vedere.

A si... eccovi il codice:

#!/usr/local/bin/perl

if ($#ARGV < 1) {
  print "comd.pl <file1> <file2>\n";
  die "1\n";
}
print "sono a 1\n";

$COST = "BEGIN DSJOB";
$f_in = $ARGV[0];
$f_out = $ARGV[1];
$bj = "KO";
print "$f_in\n";
print "$f_out\n";
print "sono a 2\n";

# apri file lettura e scrittura
if (!(open LET, "<", $f_in)) {
   die "Errore input - $!\n";
}
if (!(open SCR, ">", $f_out)) {
   die "Errore output - $!\n";
}
@info = stat(LET);
$dim = $info[7];
$dim2 = -s $f_in;
if ($dim < 1) {
   print "Il file di ingresso risulta vuoto - $dim +
$dim2\n";
}
else {
   print "Il file di ingresso ha dimensione - $dim\n";
}

while (! eof(LET)) {
# $riga contiene la riga corrente 
   #print "sono nel loop\n";
   $riga = <LET>;
   chop ($riga);
   if ($bj eq "OK") {
     print SCR "$riga\n";
     $bj = "KO";
  }
  if ($riga eq $COST) {
     # 
     print "sisisisi\n";
     $bj = "OK";
  }
}
print "sono a 3\n";
# chiudi file di lettura
close LET;
#chiudifil scrittura
close SCR;
exit "0";

> Io avrei provato cosi`:
> test:/home/test>awk '{if($0 == "BEGIN DSJOB")
> {getline; print $0}}' test.log

mmm... awk non ha funzionato perchè alcune righe
contengono caratteri sporchi e sono troppo lunghe.
Mi hanno detto che HP-UX 11 ha limitato $0 a circa 300
caratteri tant'è che sospetto che questo sia un DOS
camuffato.

Angelo


      ___________________________________ 
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail: 
http://it.docs.yahoo.com/nowyoucan.html

Other related posts: