Next time try playing around with the command a bit. Personally unless someone gives this highly involved, and more correct, answer, I think the use of this argument is near pointless, but that's just IMHO. After all, this answer is moderately involved ...
First, here's what grep tells you in the manual page:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
Therefore my interpretation is that you could use -e to specify a pattern or use -f to specify a filename containing multiple patterns.
OK, actually had a txt file from answering a different persons question, the text content came from there so please don't inquire what these links are, they were never mine.
Original file, named myfile.txt:
I make a second copy named myfile1.txt and edited one of the lines to remove my intended search patterns:
The difference being that I removed "wavetlan" and "Media" from one of the lines in myfile1.txt.
And finally I created a text file to contain the search patterns, named search.txt:
The last action is then to use grep with -f specifying search.txt and looking for the wildcard myfile*.txt to look at both copies of the target text files:
grep -f search.txt my*.txt
Only one line is found out of the myfile1.txt because neither of those patterns are seen in the second line. Both lines in myfile.txt are found because both lines contain the patterns. In my window, grep does colorize the results to highlight the patterns, similarly to how I've shown it here.
No harm in experimenting. I think "maybe" I might've needed something similar once in my near 30 years of work, because I recall once writing a script which needed to find patterns from a very extensive and varied list but that's about it.
The uniqueness here is that "both" patterns are found in an OR condition (I believe) versus if you did a grep and then piped the result to another grep, it would be an AND condition. That's about the only useful part I can see here.