Обычно я делаю такие вещи, запуская grep несколько раз, что-то вроде
grep -l 'expression1' * | xargs grep -l 'expression2' | xargs grep -l 'expression3'
и так далее. Это не кажется очень эффективным, и я не удивлюсь, если есть лучший способ, но я не знаю его.