Ag / Grep 仅精确匹配搜索

Posted

技术标签:

【中文标题】Ag / Grep 仅精确匹配搜索【英文标题】:Ag / Grep Exact Match Only Search 【发布时间】:2022-01-19 23:24:10 【问题描述】:

我在使用 Ag (The Silver Searcher) 时遇到问题...

在文档中,它说使用-Q 进行完全匹配,但我不明白为什么它不适合我的目的。如果我在终端中输入ag -Q actionsag -Q 'actions' 之类的内容,它会返回actions 的所有实例,包括transactions 之类的内容以及actions 所属的任何其他字符串。

我尝试了文档中的其他几个标志组合,包括 -s-S 等,但我仍然无法得到严格匹配的字符串 just actions 以返回我。

我也无法将其与 grep 一起使用。有谁知道我怎样才能用ag 得到我需要的东西? (甚至grep)...?

提前谢谢你!

【问题讨论】:

【参考方案1】:

因为 ag(和 grep),所以要找到 包含 东西的文件。 ag -Q 表示将搜索解释为精确的文字字符串,而不是模糊字符串或正则表达式。好的。但是,其中包含“事务”一词的文件确切地,字面意思包含字符序列actions。当然,它也包含更多内容,但这并不奇怪。

您可能正在寻找词边界搜索,grep '\bactions\b'ag -w -Q actions(可能是 ag -w -Q -s actions)。但这与“只是动作”根本不是一回事,它是对“动作”周围的事物的特定要求(即它们是动作的开始或结束)一行或非字母字符)。您必须告诉计算机您的实际意思。

【讨论】:

谢谢!!这正是我想要的!可以发誓我尝试过作为我尝试过的许多组合的一部分,但它现在似乎有效,太棒了!再次感谢...

以上是关于Ag / Grep 仅精确匹配搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何使用grep精确匹配一个单词

grep 精确匹配

Linux shellgrep命令精确匹配字符串查找

用grep进行精确单词搜索

弹性搜索精确匹配

Linux学习命令汇总八——文件查找命令find选项及使用技巧