如何使用 ag 在具有某些扩展名的文件中查找文本?

Dav*_*ave 40 search files ag

我正在使用agThe Silver Searcher)版本 0.31.0。我可以使用以下方法轻松地在一堆文件中查找字符串:

localhost:workspace davea$ ag 'ftp' .
Run Code Online (Sandbox Code Playgroud)

但是如果我只想扫描具有某些扩展名的文件怎么办?我试过这个:

localhost:workspace davea$ ag 'ftp' .java
ERR: Error stat()ing: .java
ERR: Error opening directory .java: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但得到了你在上面看到的错误。

don*_*sti 56

每本手册中,你可以使用ag-G

   -G --file-search-regex PATTERN
          Only search files whose names match PATTERN.
Run Code Online (Sandbox Code Playgroud)

例如

ag -G '\.java$' 'ftp' .
Run Code Online (Sandbox Code Playgroud)

根据相同的手册

   It is possible to restrict the types of files searched [...]
   For a list of supported types, run ag --list-file-types.
Run Code Online (Sandbox Code Playgroud)

所以你也可以跑

ag --java 'ftp' .
Run Code Online (Sandbox Code Playgroud)

尽管这会将搜索限制为以.java或结尾的文件名.properties

  • 哎呀对不起,删除。 (2认同)

mxp*_*usb 6

从 开始ag version 2.2.0,您可以运行ag --list-file-types,它将列出受支持的开箱即用类型。您只能运行ag "ftp" --java和搜索不同的 Java 文件。