Procura na segunda linha de arquivos e imprime os nomes dos arquivos em stdout

1

Eu tenho alguns diretórios de ~ 10.000 arquivos. Qual é a maneira mais rápida de pesquisar cada arquivo e retornar o nome do arquivo se a segunda linha contiver uma string específica?

Editado para maior clareza

    
por chishaku 10.11.2014 / 20:23

2 respostas

5
awk 'FNR==2 {if (/some string/) print FILENAME; nextfile}' ./*

Alguns awks não têm "nextfile".

    
por 10.11.2014 / 20:40
1

Não tenho certeza em alta velocidade, mas devo trabalhar também

for i in *
do
  {
    IFS= read -r line1 &&
      IFS= read -r line2 &&
      case $line2 in
        *some_string*)
          printf "%s\n" "$i" ;;
      esac
  } < "$i"
done
    
por 10.11.2014 / 21:22

Tags