Files
mastering-unix-ss/chapter5/function_parse_fixed_length_records
Fabio Scotto di Santolo 4cc88d2f6e initial commit
2020-07-28 19:28:25 +02:00

44 lines
1012 B
Plaintext
Executable File

function parse_fixed_length_records
{
# set -x
# Zero out the $OUTFILE
>$OUTFILE
# Associate standard output with file descriptor 4
# and redirect standard output to $OUTFILE
exec 4<&1
exec 1> $OUTFILE
while read RECORD
do
# On each loop iteration extract the data fields
# from the record as we process the record file
# line by line
BRANCH=$(echo "$RECORD" | cut -c1-6)
ACCOUNT=$(echo "$RECORD" | cut -c7-25)
NAME=$(echo "$RECORD" | cut -c26-45)
TOTAL=$(echo "$RECORD" | cut -c46-70)
DUEDATE=$(echo "$RECORD" | cut -c71-78)
RECFILE=$(echo "$RECORD" | cut -c79-)
# Perform some action on the data
process_fixedlength_data_new_duedate $BRANCH $ACCOUNT $NAME \
$TOTAL $DUEDATE $RECFILE $NEW_DATEDUE
if (( $? != 0 ))
then
# Note that $LOGFILE is a global variable
echo "Record Error: $RECORD" | tee -a $LOGFILE
fi
done < $MERGERECORDFILE
# Restore standard output and close file
# descriptor 4
exec 1<&4
exec 4>&-
}