使用ripgrep ( rg
),我可以只打印符合给定模式的文件名吗?
我正在尝试做两件不同的事情:
- 将模式与路径名本身匹配(如
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>
表示.
匹配文件中的任何字符(因此它不会匹配空文件)。