
Я ищу файлы, содержащие строку. Моя команда:
grep -rwl '/path/' -e "string"
Я хочу ограничить результат путями, содержащими другую строку. Я могу сделать это так:
grep -rwl '/path/' -e "string" | grep 'path_string'
Я хотел бы оптимизировать выполнение, если это возможно, просматривая только пути с 'path_string' для начала. Как я могу это сделать?
решение1
Вы могли бы использовать find
, -path
например,
find /path -path '*path_string*' -type f -exec grep -qw 'string' {} \; -print
Будет выполнен поиск /path
имен файлов, соответствующих одному шаблону оболочки *path_string*
, и запуск grep
только этих файлов с выводом их имен в случае успеха.
1: сопоставление с шаблоном применяется ко всему имени файла, начиная с/path/