To handle the issue of non-matching dates, the "processing date" in file B was updated to be the string "PROCESSING_DATE". That just left the date in file A to contend with.
Here is where sed and awk came to the rescue. I used head -n1 to get the first line of file A, and used awk to get the processing date (which appeared in the 11th column). The processing date was stored in a variable named target_date. Next, I used sed to do a replacement on all instances of target_date in file A. After which I was able to do a diff on the two files to see if the output was as expected.
Here is how it looked in the shell script:
# get the target date
target_date=`head -n1 fileA.txt | awk '{print $11}'`
# get the sed argument using the target date
sed_args="s/$target_date/PROCESSED_DATE/g"
# do an inline replacement on the target file
sed -i $sed_args fileA.txt
# check for differences
diffs=`diff fileA.txt fileB.txt`
if [ -n $diffs ]; then
echo "There were differences between the files."
else
echo "No differences were found."
fi
No comments:
Post a Comment