我意识到这个论坛上似乎有很多关于在文件中搜索多个字符串的问题,但我找不到在多个文件中搜索多个字符串的解决方案。
使用竖线分隔的搜索结果始终是 OR 语句。我想要的是提供“AND”语句的东西,无论是正则表达式还是允许多个输入的工具。
我尝试过 dnGrep、WinGrep、PowerGrep 和 BareGrep,但这些似乎都不提供此功能。对于那些使用过 grep 存储过程的人,我相信您会理解我的痛苦。
我正在尝试搜索存储过程中存在几个共享相同通用列名的表的情况,并且使用别名表名,这会变得非常麻烦,因为我不能简单地搜索 TableName.ColumnName。
如果有人能帮我解决这个问题,那就太好了。如果有人知道某个工具或者自己编写了一个工具,那就太好了。它对于搜索 java 和 c# 代码也很有用。
最佳答案
我假设您想要查找给定目录中包含模式 1、模式 2 和模式 3 的所有文件:
grep -r -l pattern1 . | xargs grep -l pattern2 | xargs grep -l pattern3
-r 选项递归检查所有文件。 -l 仅列出匹配的文件。 xargs 将前一个 grep 中的文件列表转换为下一个 grep 的输入参数。如果您有很多模式,您可以将它们放在脚本或花哨的别名中。
如果您想将搜索限制为某些文件类型,可以使用find
首先限制输入文件:
find . -name "*.h" | xargs grep -l pattern1 | xargs grep -l pattern2 | xargs grep -l pattern3
关于c# - 在多个文件中搜索多个字符串的 Grep 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402113/