Você também pode usar head + grep e agrupar os comandos com {...} para compartilhar a mesma entrada:
{ head -n 50 >/dev/null; grep PATTERN; } <infile
Dessa forma, head obtém apenas as primeiras n linhas, as copia para /dev/null e as linhas restantes são processadas por grep .