首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用silver搜索器搜索文件和文件名

使用silver搜索器搜索文件和文件名
EN

Stack Overflow用户
提问于 2013-09-10 15:49:00
回答 6查看 32.8K关注 0票数 26

使用Silver Searcher,我如何搜索:

带有单词或模式的AND

  • all文件名的
  1. (非二进制)文件,带有包含二进制文件的文件名的单词或模式。

其他偏好:想要有大小写不敏感的搜索和搜索通过点文件。

尝试使用此别名,但没有太多运气:

alias search="ag -g $1 --smart-case --hidden && ag --smart-case --hidden $1"

EN

回答 6

Stack Overflow用户

发布于 2015-01-21 06:22:42

根据ag的手册页

   -G --file-search-regex PATTERN
          Only search files whose names match PATTERN.

您可以使用-G选项对与模式匹配的文件执行搜索。

所以,为了回答你的问题:

root@apache107:~/rpm-4.12.0.1# ag -G cpio.c size
rpm2cpio.c
21:    off_t payload_size;
73:    /* Retrieve payload size and compression type. */
76:     payload_size = headerGetNumber(h, RPMTAG_LONGARCHIVESIZE);

上面的命令在匹配模式cpio.c的所有文件中搜索单词size

参考资料:

ag 0.28.0版的手册页

注1:

如果你正在寻找某些文件类型的字符串,比如所有的C源代码,ag中有一个undocumented feature可以帮助你快速地将搜索限制到特定的文件类型。

下面的两个命令都在所有的php文件中查找foo

find . -name \*.php -exec grep foo {}
ag --php foo

find + grep查找所有.php文件时,ag命令中的--php开关实际上查找以下文件扩展名:

.php  .phpt  .php3  .php4  .php5  .phtml

您可以将--cpp用于C++源文件,将--hh用于.h文件,将--js用于JavaScript等。完整列表可在here中找到

票数 55
EN

Stack Overflow用户

发布于 2013-12-18 09:04:28

试试这个:

find . | ag "/.*SEARCHTERM[^/]*$"

命令find .将列出所有文件。

我们通过管道将其输出到命令ag "/.*SEARCHTERM[^/]*$",如果文件名中有SEARCHTERM,则匹配SEARCHTERM,而不仅仅是完整路径。

票数 5
EN

Stack Overflow用户

发布于 2015-07-29 03:24:45

尝试将其添加到您的别名文件中。使用zsh进行了测试,但应该可以使用bash。您在示例中遇到的问题是bash别名不能接受参数,因此您必须首先定义一个使用参数的函数,然后将别名分配给该函数。

searchfunction() {
  echo $(ag -g $1 --hidden)
  echo $(ag --hidden -l $1)
}

alias search=searchfunction

您可以通过几种方式修改此示例以适应您的目的,例如

  • 根据您是希望文本结果显示文本匹配还是仅显示文件名,添加/删除-l标志
  • 添加标题以分隔文本结果和文件名results
  • deduplicate结果以说明在文件名和文本等方面都匹配的文件。

编辑:根据Pablo Bianchi的评论删除不必要的--smart-case标志

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18713316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档