ripgrep:仅打印匹配模式的文件名

ripgrep:仅打印匹配模式的文件名

使用ripgrep ( rg),我可以只打印符合给定模式的文件名吗?

我正在尝试做两件不同的事情:

  1. 将模式与路径名本身匹配(如ag -g pattern
  2. 将模式与文件内容进行匹配并仅打印文件名

我不知道如何做其中之一。

答案1

  1. 仅打印内容匹配的文件名:

    rg -l regex
    # OR: long-option form
    rg --files-with-matches regex
    
  2. 仅打印与以下给定模式匹配的目录条目(文件名)<directory>

    rg -g '*glob*' --files <directory>
    

    指定-g一个其规则匹配的 glob.gitignore图案

    在 glob 前面加上 a 可!将其排除。

    使用--iglob而不是-g不区分大小写的 glob。

    --files打印将要搜索的每个文件而不实际执行搜索。


执行 (2) 的效率较低的方法是:

rg -lg '*pattern*' . <directory>

表示.匹配文件中的任何字符(因此它不会匹配空文件)。

相关内容