Se você não for forçado a usar o grep:
find . -type f -exec \
awk 'FNR==1 && /GIVEN_STRING/ { print FILENAME ": " $0; }; FNR>1 {nextfile}' {} +
Isso causa muito menos carga de CPU, já que um processo (ou poucos) faz todo o trabalho.
Como posso grep para uma determinada string em todos os arquivos no diretório atual, e de forma recursiva, considerando apenas a primeira linha? (a linha #!, se presente, mas somente se #! estiver na primeira linha)
Se você não for forçado a usar o grep:
find . -type f -exec \
awk 'FNR==1 && /GIVEN_STRING/ { print FILENAME ": " $0; }; FNR>1 {nextfile}' {} +
Isso causa muito menos carga de CPU, já que um processo (ou poucos) faz todo o trabalho.
Tente fazer isso:
find . -type f -exec head -1 {} \; | grep "GIVEN_STRING"