файлов - linux поиск текста в файлах grep




Как я могу использовать grep для отображения только имен файлов(без встроенных совпадений) в Linux? (2)

Для простого поиска файлов вы можете использовать опции -l и -r grep:

grep -rl "mystring"

Весь поиск выполняется grep. Конечно, если вам нужно выбрать файлы по другому параметру, найдите правильное решение:

find . -iname "*.php" -execdir grep -l "mystring" {} +

Параметр execdir создает каждую команду grep для каждой директории и объединяет имена файлов только в одну команду ( + ).

Как я могу использовать grep для отображения только имен файлов (без встроенных совпадений) в Linux?

Обычно я использую что-то вроде:

find . -iname "*php" -exec grep -H myString {} \;

Как я могу просто получить имена файлов (с путями), но без совпадений? Нужно ли использовать xargs ? Я не видел способа сделать это на моей странице grep man.


На странице man grep(1) :

  -l, --files-with-matches
          Suppress  normal  output;  instead  print the name of each input
          file from which output would normally have  been  printed.   The
          scanning  will  stop  on  the  first match.  (-l is specified by
          POSIX.)




grep