2017-04-05 32 views
1

比方说,我有一个目录的两个文件:如何仅使用ag搜索以特定字符开头的文件?

.test 
test.txt 

如何限制我的ag搜索只用.开头的文件?

我尝试了一些模式,但都没有工作。

+0

嗯,我偶然发现了使用zsh的扩展来做到这一点,但它只能通过列出当前目录中的文件('ag foo。*',其中'。*'解析为'.test')来工作。这对我目前的需求来说没问题,但作为一个强大的解决方案并不令人满意 – astephenb

回答

1

如何将我的ag搜索限制为只以。开头的文件?

像这样:

ag -u -G ^\..*$ PATTERN 

在您的例子,该文件.test是隐藏的,所以选项-u就派上用场了。这个选项可能是你在搜索时错过的。

让我解释的正则表达式^\..*$

  • ^表示:字符串
  • \.的开始意味着:点字符
  • .*表示:任何字符.任意次数*
  • $是可选的;它标志着字符串的结尾匹配

注:我打开了股份公司bug tracker,因为我看到搜索并不局限于文件的名字开始与.,因为它应该是这个正则表达式。


更一般地,来搜索文件名匹配正则表达式,可以使用:

ag -G REGEX PATTERN 

(同ag --file-search-regex REGEX PATTERN

检查手册上AG的资料。

+0

啊,所以这是目前的一个bug!我尝试了许多变化,没有运气。小心链接到问题,所以我可以遵循? – astephenb

+0

当然!我编辑了我的答案。 – Bludzee

+0

我更新了错误跟踪器以提供调试信息(使用ag选项'-D')。 – Bludzee

相关问题