Aqui está um código com menos pseudo. Eu não testei, então talvez não funcione, mas é onde eu devo começar.
function findprint {
local word1 = $(echo | grep -o "\WORD1\" | wc -w)
local word2 = $(echo | grep -o "\WORD2\" | wc -w)
word1total=$[word1total+word1]
word2total=$[word2total+word2]
echo "$word1 WORD1"
echo "$word2 WORD2"
}
word1total = 0;
word2total = 0;
while read line; do
if [ hour -lt 2 ]; then
echo "Hour 1"
findprint "$line"
fi
if [ hour -gt 1 && hour -lt 2 ]; then
echo "Hour 2"
findprint "$line"
fi
if [ hour -gt 2 && hour -lt 3 ]; then
echo "Hour 3"
findprint "$line"
fi
done < /var/log/syslog
echo "TOTAL:"
echo "$word1total WORD1"
echo "$word2total WORD2"