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.