1 of 3

Here's an sh script that produces the results you need.

#/bin/sh

cat patterns.txt |
while read -r pattern
do
    grep -e "$pattern" found.txt
    if [ $? -eq 1 ]
    then
        echo "$pattern" not found
    fi
done

In this script, I assume you output the results of your grep to the file found.txt, and that you store your patterns in the file patterns.txt.

As you can see, the grep in the loop will produce the same contents of the file found.txt while adding "$pattern" not found for the missing ones.