Grep рекурсивно для определенного типа файла в терминале Linux

Можно ли искать термины (например, "onblur" ) рекурсивно в некоторых папках только в определенных файлах (html файлы)?

grep -Rin "onblur" *.html

Это ничего не возвращает. Но,

grep -Rin "onblur" .

возвращает "onblur" результат поиска из всех доступных файлов, например, в тексте ( ". txt" ),.mako,.jinja и т.д.

Ответ 3

Вам также может понравиться ag 'серебряный искатель' -

ag --html onblur

он ищет по regexp и рекурсивен в текущем каталоге по умолчанию и имеет предопределенные наборы расширений для поиска - в этом случае --html сопоставляет .htm,.html,.shtml,.xhtml. Также игнорирует двоичные файлы, печатает имена файлов, номера строк и расцветки по умолчанию.

Некоторые параметры -

-Q --literal
          Do not parse PATTERN as a regular expression. Try to match it literally.
-S --smart-case
          Match case-sensitively if there are any uppercase letters in PATTERN, 
          case-insensitively otherwise. Enabled by default.
-t --all-text
          Search all text files. This doesn't include hidden files.
   --hidden
          Search hidden files. This option obeys ignored files.

Для списка поддерживаемых типов файлов выполните ag --list-file-types.

Единственное, чего, по-видимому, не хватает, - это указать тип файла с расширением, в этом случае вам нужно вернуться к grep с --include.