Отфильтрованный список файлов, содержащих строку

Отфильтрованный список файлов, содержащих строку

Я ищу файлы, содержащие строку. Моя команда:

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/

Связанный контент