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