find + grep не работает

Я хочу найти строку «ПОИСК» во всех файлах .h с помощью команды:

find . -name "*.h" -exec -Hw "SEARCH" { } \; 

но он бросает ошибку как:

 find: â-Hwâ: No such file or directory, in linux 

дайте мне знать, как его решить.

  • Почему `grep fil *` терпит неудачу?
  • Зачем получать эти «Разрешенные разрешения» в POSIX find-grep для чтения?
  • Печатать слово, которое не содержит символа
  • Греп - ^ (\ s * $) vs ^ \ s * $
  • Как grep для текста в файле и отображать абзац с текстом?
  • Получите все регулярные выражения между двумя шаблонами и напечатайте их в файл
  • Как я рекурсивно grep через сжатые архивы?
  • Условный awk через 4 столбца
  • 2 Solutions collect form web for “find + grep не работает”

    Вы можете использовать grep для find :

     find . -name "*.h" -exec grep "SEARCH" {} \; 

    Вы забыли команду «grep». Сделайте это вместо этого:

     find . -type f -name "*.h" -exec grep -F -Hw "SEARCH" {} + 

    Заметьте, что я изменил:

    • добавлен- -type f
    • добавлена ​​команда grep -F
    • изменен { } на {} , иначе он не будет работать
    • изменено ; до + (плюс) в конце -exec инструкции, так что выполняется только один grep для кучи файлов (ускоряйте вещи, гораздо более дружественные к ресурсам)
    Linux и Unix - лучшая ОС в мире.