Чтобы использовать grep специально, вы можете использовать оператор ИЛИ для обеих возможностей:
grep -c -E "(.*tok1.*tok2.*|.*tok2.*tok1.*)" file
Вы также можете просто выполнить grep для одного токена, а затем передать его повторяющемуся grep для другого токена:
grep "tok1" file | grep -c "tok2"
Множественные greps кажутся намного быстрее, когда вы начинаете вводить много токенов. Вы также можете заменить команду egrep , которая является регулярной версией grep ... но я избегаю ее по той же причине: мне кажется, что при вводе нескольких терминов в поиск мне требуется намного больше времени .