57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# This script extracts lines from the output of cprnc that tell us
|
|
# which variables differ between two files
|
|
#
|
|
# Usage: get_cprnc_diffs filename
|
|
|
|
# ----------------------------------------------------------------------
|
|
# SET PARAMETERS HERE
|
|
# ----------------------------------------------------------------------
|
|
|
|
# maximum number of differences to extract from the cprnc output
|
|
maxdiffs=200
|
|
|
|
# ----------------------------------------------------------------------
|
|
# LOCAL FUNCTIONS DEFINED HERE
|
|
# ----------------------------------------------------------------------
|
|
|
|
# This function gets differences for one prefix (e.g., "RMS")
|
|
# Usage: get_diffs prefix
|
|
# (also uses $infile and $maxdiffs from the parent script)
|
|
function get_diffs {
|
|
prefix=$1
|
|
outfile=${infile}.${prefix}.$$
|
|
grep "$prefix" $infile > $outfile
|
|
numlines=`wc -l $outfile | awk '{print $1}'`
|
|
if [ $numlines -gt $maxdiffs ]; then
|
|
echo "WARNING: Too many instances of $prefix - only printing last $maxdiffs"
|
|
tail -$maxdiffs $outfile
|
|
else
|
|
cat $outfile
|
|
fi
|
|
rm $outfile
|
|
}
|
|
|
|
# ----------------------------------------------------------------------
|
|
# BEGIN MAIN SCRIPT
|
|
# ----------------------------------------------------------------------
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Handle command-line arguments
|
|
# ----------------------------------------------------------------------
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "Usage: get_cprnc_diffs filename"
|
|
exit 1
|
|
fi
|
|
|
|
infile=$1
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Do the processing
|
|
# ----------------------------------------------------------------------
|
|
|
|
get_diffs RMS
|
|
get_diffs FILLDIFF
|