Как вернуть имя файла и номер строки с помощью find … -exec grep?

При использовании find , как мне вернуть имя файла и номер строки при поиске строки? Мне удается вернуть имя файла в одной команде и номера строк с другим, но я не могу их комбинировать.

Имена файлов: find . -type f -exec grep -l 'string to search' {} \; find . -type f -exec grep -l 'string to search' {} \;

Номера строк: find . -type f -exec grep -n 'string to search' {} \; find . -type f -exec grep -n 'string to search' {} \;

3 Solutions collect form web for “Как вернуть имя файла и номер строки с помощью find … -exec grep?”

Переключатель командной строки -H заставляет grep печатать имя файла даже с одним файлом.

 % grep -n 7 test.in 7:7 % grep -Hn 7 test.in test.in:7:7 

  -H, --with-filename Print the filename for each match. 

Обратите внимание, что, как отмечает Kojiro в комментарии , это не является частью стандарта POSIX; это как в GNU, так и в BSD grep, но возможно, что некоторые системы не имеют его (например, Solaris).

 find . -type f -exec grep -n 'string to search' /dev/null {} + 

(или с GNU grep, см. параметр -H )

Если ваш grep поддерживает рекурсивный флаг -r , это решает ваш запрос:

 grep -rn "String to search " * 
  • Инструмент командной строки для поиска файлов docx
  • Насколько разумны утилиты unix?
  • Поиск всех xml-файлов рекурсивно в каталоге для определенного тега и grep значение тега
  • Есть ли способ изменить файл на месте?
  • Удалить пробелы после определенного символа
  • grep, чтобы найти экземпляры «Foo», где «Bar» не отображается в пределах 10 строк
  • Удалите x строк до и y строк после n-й строки (которая соответствует шаблону) в файле
  • Извлечение совпадающих слов с помощью grep на Cygwin
  • Как дважды выпить?
  • Может ли grep выводить только указанные группы, которые соответствуют?
  • Условный awk через 4 столбца
  • grep --exclude не исключает мой файл
  • Linux и Unix - лучшая ОС в мире.