С помощью zsh
:
print -rl ./**/results.out(.e_'grep -q string $REPLY'_:h)
выполняется рекурсивный поиск обычных файлов (.
) с именем results.out
, выполняется grep -q ...
на каждом из них и если это e
valuations true, то печатает только h
ead пути (путь без последнего элемента).
Другой способ с find
и sh
, используя расширение параметров для извлечения головки:
find . -type f -name results.out -exec grep -q string {} \; \
-exec sh -c 'printf %s\\n "${0%/*}"' {} \;