Как указать каталоги с указанным файлом в них имеет указанный контент?

У меня есть сотни каталогов, внутри каждого из них есть файл с именем report.ext и этот файл может содержать строку типа

 Beta score for best model 95.35 

Я хотел бы получить список каталогов, где этот файл существует, где он содержит такую ​​строку и где эта строка содержит значение больше 95.

Возможно ли это из инструментов командной строки?

  • Цветной вывод из сценария Bash
  • grep случайно появляется и исчезает в ps aux (ps aux | grep python)
  • Как grep «a» и «aa» после числа?
  • Чтобы grep 20 символов после и после матча
  • захватить из текстового файла диапазон с использованием двух переменных в качестве начального и конечного параметров
  • Помощь с регулярным выражением в grep
  • Эмуляция статуса git - вызывается в папке без репозитория
  • Найти все измененные файлы svn и скопировать файлы, измененные в одной структуре папок
  • One Solution collect form web for “Как указать каталоги с указанным файлом в них имеет указанный контент?”

    Проще всего искать эти файлы и печатать их родительский каталог, если их содержимое соответствует. Например, с чем-то вроде:

     find . -name report.ext -type f -exec awk ' /^Beta score for best model [0-9.]+$/ && $NF > 95 { dir = FILENAME sub("/[^/]*$", "", dir) print dir nextfile }' {} + 

    Если ваша реализация awk не поддерживает следующий nextfile , это будет печатать имя каталога для каждого вхождения этих строк в файл.

    Linux и Unix - лучшая ОС в мире.