Поиск второй строки файлов и имена файлов для печати в stdout

У меня есть несколько каталогов из ~ 10 000 файлов. Каков самый быстрый способ поиска каждого файла и возврата имени файла, если вторая строка содержит определенную строку?

Отредактировано для ясности

2 Solutions collect form web for “Поиск второй строки файлов и имена файлов для печати в stdout”

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

У некоторых awks нет «nextfile».

Я не уверен в высокой скорости, но должен работать тоже

 for i in * do { IFS= read -r line1 && IFS= read -r line2 && case $line2 in *some_string*) printf "%s\n" "$i" ;; esac } < "$i" done 
  • Использовать sed или awk для объединения строк в определенном шаблоне?
  • Как выполнить действие только в первой строке?
  • Использование sed для добавления URL-адреса в начало каждой строки
  • Переключение отдельных строк в список, разделенный запятыми, с цитированными записями
  • Изменение конфигурационных файлов с помощью awk / sed
  • Заменить определенный текст в фигурных скобках
  • Заменить первый столбец файла с помощью вывода команды
  • Как работать с несколькими командами sed в aix?
  • Как прокомментировать строку на основе слова, с которого оно начинается?
  • Работа с столбцами - awk и sed
  • Как grep / awk / sed для текста в журнале и отображать кусок с текстом?
  • Удалить длинную строку из файлов
  • Linux и Unix - лучшая ОС в мире.