Когда надо грепнуть по принципу верни строки где есть "матч1 и матч2", то мы юзаем grep -E '(match1.*match2)'
когда нужно условие ИЛИ то grep -E '(match1|match2)'
помните что пробелы имеют значение :
grep -E '(match1|match2)'и
grep -E '(match1 | match2)' - это разные запросы и результаты