Can we search a term (eg. \"onblur\") recursively in some folders only in specific files (html files)?
grep -Rin \"onblur\" *.html
This ret
grep -r --include "*.html" onblur .
Got it from : How do I grep recursively?
Consider checking this answer and that one.
Also this might help you: grep certain file types recursively | commandlinefu.com.
The command is:
grep -r --include="*.[ch]" pattern .
And in your case it is:
grep -r --include="*.html" "onblur" .
You might also like ag 'the silver searcher' -
ag --html onblur
it searches by regexp and is recursive in the current directory by default, and has predefined sets of extensions to search - in this case --html maps to .htm, .html, .shtml, .xhtml. Also ignores binary files, prints filenames, line numbers, and colorizes output by default.
Some options -
-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.
For the list of supported filetypes run ag --list-file-types
.
The only thing it seems to lack is being able to specify a filetype with an extension, in which case you need to fall back on grep with --include.
Have a look at this answer instead, to a similar question: grep, but only certain file extensions
This worked for me. In your case just type the following:
grep -inr "onblur" --include \*.html ./
consider that
grep
: command
-r
: recursively
-i
: ignore-case
-n
: each output line is preceded by its relative line number in the file
--include \*.html
: escape with \ just in case you have a directory with asterisks in the filenames
./
: start at current directory.