Вы используете grep с базовыми регулярными выражениями . grep ^aaa\| file.txt
— это то же самое, что и grep "^aaa|" file.txt
. При чтении файла grep -f regex.txt file.txt
совпадает с grep "^aaa\|" file.txt
. Экранированное |
означает соответствие ^aaa
или ""
, которое соответствует чему-либо.