使用リップグレップ( rg
)、指定されたパターンに一致するファイル名のみを印刷できますか?
私は2つの異なることをしようとしています。
- パターンをパス名自体と一致させます(例
ag -g pattern
:) - パターンをファイルの内容と一致させ、ファイル名のみを印刷します。
これらのいずれかを行う方法がわかりません。
答え1
内容が一致するファイル名のみを印刷します。
rg -l regex # OR: long-option form rg --files-with-matches regex
次のパターンに一致するディレクトリエントリ(ファイル名)のみを印刷します
<directory>
。rg -g '*glob*' --files <directory>
-g
ルールが一致するglobの指定.gitignore
模様。!
除外するには、globの前にaを付けます。--iglob
代わりに大文字と小文字を-g
区別しないglobを使用してください。--files
実際に検索を実行せずに検索する各ファイルを印刷します。
(2) を実行する効率が低い方法は次のとおりです。
rg -lg '*pattern*' . <directory>
.
これは、ファイル内のすべての文字と一致することを意味します(したがって、空のファイルと一致しません)。