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

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

 Beta score for best model 95.35 

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

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

  • Мне нужно извлечь IP-адрес и путь к файлу из отчета Nessus, используя текстовый обработчик
  • Измените / etc / xdg / lxsession / LXDE / автозапуск перед загрузкой
  • Как восстановить файл tar, где stderr был смешан с stdout?
  • Соответствующая ячейка Grep файла csv и индекс этой строки
  • Извлечение координат совпадающего текста в PDF
  • Синтаксическая ошибка Grep с правильным регулярным выражением
  • Распечатайте до (и включив) n-е появление шаблона в строке
  • Какое правильное произношение «grep» и «grub»?
  • 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 - лучшая ОС в мире.