Você precisaria digitalizar todos arquivos e obter a primeira linha, depois verificar o padrão, e finalmente executar uma impressão das dez primeiras linhas. Pode ficar muito caro.
find /path/to/search \
-type f \
-exec /bin/bash -c "head -n 1 '{}' | grep 'PATTERN' >/dev/null" \; \
-exec head -n 10 \{\} \;
O -type f
é necessário para não executar head
nos diretórios e grep
é redirecionado, pois estamos interessados apenas em seu status de saída. O segundo -exec
será executado apenas nos arquivos que passarem no primeiro teste.
Recomenda-se que você adicione testes adicionais antes de -type f
, para reduzir o número de arquivos que serão verificados.