Para versões não-GNU de grep , que provavelmente não terão -z , ou se a portabilidade for necessária ...
grep -q pattern file && cat file
-q suprime qualquer saída, mas, por padrão, o status de saída é definido com base em se uma correspondência de padrão foi encontrada ou não. Com uma correspondência de padrão grep retorna o código de sucesso 0 que é equivalente a verdadeiro e que permite que o comando cat seja executado.