#!/usr/bin/perl -w
#*******************************************************************************
# *
# Program to combine multiline output from odmget and other stanza data. *
# *
#*******************************************************************************
#*******************************************************************************
# Misc setup
#*******************************************************************************
use English;
use File::Basename;
$PROGRAM_NAME=basename($PROGRAM_NAME);
#*******************************************************************************
# Process command line options
#*******************************************************************************
#None
#*******************************************************************************
# Start of before file processing
#*******************************************************************************
$more_lines = 1;
$out_line=""; # Empty output line
$total_in_lines = 0; # Grand total Number of lines in input
$total_out_lines = 0; # Grand total Number of lines in output
#*******************************************************************************
# End of before file processing
#*******************************************************************************
#*******************************************************************************
# Start of line by line processing
#*******************************************************************************
line: while ($more_lines == 1 && defined($line=<>))
{
chomp($line); # strip record separator
# printf STDERR "%s\n",$line; ######## Debug
############ Skip non-data lines
if ($line =~ /^\#/) { next line; }
#*******************************************************************************
# Process lines of interest
#*******************************************************************************
if ($line =~ /%[123]/)
{
printf STDERR "Caution, line contains %% \"%s\"\n", $line;
}
if (! $line =~ /^$/)
{
$total_in_lines++; # Count of lines input
$line=~s/^\s+//; # Eliminate leading blanks
$line=~s/%/%3/g; # Change all % to %3
$line=~s/ /%1/g; # Change all blanks to %1
$line=~s/\t/%2/g; # Change all tabs to %2
#$line=~s/\s+//g; # Eliminate all blanks
$out_line.=$line." "; # Add input line to combined output with a space
#printf STDERR "line=\"%s\"\n", $line; ######## Debug
#printf STDERR "out_line=\"%s\"\n", $out_line; ######## Debug
}
else {
if ( length($out_line) gt 0 )
{
printf "%s\n",$out_line;
$out_line=""; # Blank for next pass
$total_out_lines++; # Count of lines output
}
}
#*******************************************************************************
# End of line by line processing
#*******************************************************************************
# print STDERR "Bottom of loop\n"; ######## Debug
}
# print STDERR "Exited loop\n"; ######## Debug
if ( length($out_line) gt 0 )
{
printf "%s\n",$out_line;
$total_out_lines++;
}
#*******************************************************************************
# Start of end of file processing
#*******************************************************************************
printf STDERR "\n";
printf STDERR "total lines input=%d\n", $total_in_lines;
printf STDERR "total lines output=%d\n", $total_out_lines;
printf STDERR "\nCounts exclude commands and blank lines.\n";
#*******************************************************************************
# End of end of file processing
#*******************************************************************************