#!/usr/bin/perl use Getopt::Std; use Time::Local; # quick-and-dirty routine to re-format output from solo log files, # made with the meta data option # getopts('f:a'); if ( $opt_f ) { @fnames = `cat $opt_f`; for($i=0; $i<=$#fnames; $i++) { $fnames[$i] =~ chomp($fnames[$i]);} } else { for (@ARGV) { push @fnames, $_; } } if ( $opt_a ) { @fnames = glob("*.txt"); # @fnames = `ls -1 | egrep '^ncswp|^swp\.'`; } for(@fnames) { $fn = $_; chomp $fn; $ready=0; open( INP, "<$fn") || die "cannot open original file for input: $fn"; print <<_EOF_; VORTEX2 DORADE Format parameter evaluation _EOF_ printf("

DORADE Housekeeping Evaluation, VORTEX-2 Radar Data

\n"); printf("

%s

\n

Highlighted items require attention.
\nGeneral Comments:\n
\n\n

\n",$fn); ITER: while () { $line = $_; chomp($line); $line =~ s/\s+/ /g; # remove multiple blanks in line $line =~ s/\[\s+/\[/g; # take care of an odd case of parameter subscripting $line =~ s/^\s+//g; # remove any leading blanks $line =~ s/,$|\;$|\}$//; # remove any typical trailing chars next ITER if ($line =~ m/^$/); # skip blank lines if ( $line =~ m/Contents/) { # a block header line if( $ready > 0 ) { printf("\n

\n"); } $ready++; printf("\n\t\n",$line); printf("\t\n\t\t\n\t\t\n\t\t\n\t\n"); next ITER; } if ( ($line =~ m/place_holder/) || ($line =~ m/key_table/) ) { # ignore these lines next ITER; } if ( $line =~ m/\*/ ) { $line =~ s/\*//g; ($param, $val, $recom ) = split( / /,$line, 3); printf("\t\n\t\t\n", $param); printf("\t\t\n\t\t\n\t\n",$val,$recom); last ITER if ($line =~ m/angle_table_offset/); } else { ($param, $val) = split( / /,$line, 2); printf("\t\n\t\t\n\t\t\n\t\t\n\t\n",$param,$val); last ITER if ($line =~ m/angle_table_offset/); } } close INP; printf("
%s
Param nameCurrent valueRecommended value
%s%s%s
%s%s
\n

\n"); } exit;