A opção -f especifica um arquivo onde o grep lê padrões. Isso é como passar padrões na linha de comando (com a opção -e se houver mais de um), exceto que quando você está chamando de um shell você pode precisar citar o padrão para proteger os caracteres especiais de serem expandidos por o shell.
O argumento -E ou -F ou -P , se houver, informa ao grep em que sintaxe os padrões são gravados. Sem argumento, o grep espera expressões regulares básicas ; com -E , o grep espera expressões regulares estendidas ; com -P (se suportado), o grep espera expressões regulares Perl ; e com -F , o grep espera sequências literais. Se os padrões vêm da linha de comando ou de um arquivo, não importa.
Observe que as strings são substrings: se você passar a+b como padrão, uma linha contendo a+b+c será correspondida. Se você quiser procurar linhas contendo exatamente uma das strings fornecidas e não mais, então passe a opção -x .