关于terminal:对于Linux上的特定文件类型递归grep

grep recursively for a specific file type on Linux

我们是否可以在某些文件夹中递归搜索一个词(如"onblur"),只搜索特定文件(html文件)?

1
grep -Rin"onblur" *.html

这不会有任何回报。但是,

1
grep -Rin"onblur" .

返回所有可用文件的"onblur"搜索结果,如文本(".txt")、.mako和jinja等。


考虑检查这个答案和那个答案。

这还可以帮助您:递归地grep某些文件类型commandlinefu.com。

命令是:

1
grep -r --include="*.[ch]" pattern .

在你的例子中,它是:

1
grep -r --include="*.html""onblur" .


1
grep -r --include"*.html"  onblur .

得到:如何递归地grep?


你也可能喜欢银搜索者。-

1
ag --html onblur

它按regexp搜索,默认情况下在当前目录中是递归的,并且有预定义的扩展集来搜索(在本例中是HTML映射到.htm、.html、.shtml、.xhtml)。默认情况下,也会忽略二进制文件、打印文件名、行号和着色输出。

一些选项-

1
2
3
4
5
6
7
8
9
-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

它唯一缺少的就是能够指定一个扩展名为filetype的文件类型,在这种情况下,您需要依靠grep with--include。