web-dev-qa-db-ja.com

Linux上の特定のファイルタイプに対してgrepを再帰的に実行する

特定のファイル(htmlファイル)内の一部のフォルダーで、用語(例: "onblur")を再帰的に検索できますか?

grep -Rin "onblur" *.html

これは何も返しません。だが、

grep -Rin "onblur" .

戻り値 "onblur" text( "。txt")、. mako、.jinjaなどの使用可能なすべてのファイルからの検索結果.

20

this answer および that one を確認することを検討してください。

また、これはあなたを助けるかもしれません: 特定のファイルタイプを再帰的にgrep | commandlinefu.com

コマンドは次のとおりです。

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

そしてあなたの場合それは:

grep -r --include="*.html" "onblur" .
33
dnl-blkv
grep -r --include "*.html"  onblur .

それを手に入れました: 再帰的にgrepするにはどうすればよいですか?

また、銀の「サーチャー」も好きかもしれません-

ag --html onblur

正規表現で検索し、デフォルトで現在のディレクトリで再帰的に実行します。検索する拡張機能の定義済みセットがあります。この場合、-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

不足しているように見える唯一のことは、拡張子を付けてファイルタイプを指定できることです。その場合、-includeを使用してgrepに頼る必要があります。

1
Brian Burns