如何用ripgrep(rg)命令查找同时包含两个模式的文件?
使用ripgrep查找同时包含多模式的文件
要实现仅列出同时包含PATTERN_A和PATTERN_B的文件,你可以通过以下两种方式实现:
方法一:管道结合两次ripgrep调用
先筛选出包含PATTERN_A的文件,再在这些文件中查找包含PATTERN_B的:
rg -l PATTERN_A /path/to/dir | xargs rg -l PATTERN_B
如果你的文件路径包含空格,建议加上--null和-0参数避免解析错误:
rg -l --null PATTERN_A /path/to/dir | xargs -0 rg -l PATTERN_B
方法二:使用ripgrep内置的--and逻辑选项
ripgrep 11.0.0及以上版本支持--and参数,直接指定多模式的逻辑与关系:
rg -l -e PATTERN_A --and -e PATTERN_B /path/to/dir
也可以写成更简洁的形式:
rg -l 'PATTERN_A' --and 'PATTERN_B' /path/to/dir
内容的提问来源于stack exchange,提问作者halloleo
相关产品推荐
相关产品推荐

