Grep para string na primeira linha de todos os arquivos no diretório e descendentes [duplicados]

3

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)

    
por Robottinosino 28.02.2013 / 00:11

2 respostas

2

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.

    
por 28.02.2013 / 00:34
0

Tente fazer isso:

find . -type f -exec head -1 {} \; | grep "GIVEN_STRING"
    
por 28.02.2013 / 00:15

Tags