我意识到在这个论坛上似乎有很多关于在文件中搜索多个字符串的问题,但我找不到一个解决方案来搜索多个文件中的多个字符串。
使用竖线分隔的搜索结果始终是一个OR语句。我想要的是提供"AND“语句的东西,无论是正则表达式还是允许多个输入的工具。
我尝试过dnGrep、WinGrep、PowerGrep和BareGrep,但它们似乎都不提供此功能。对于那些使用grep存储过程的人来说,我相信你们理解我的痛苦。
我正在尝试搜索在存储过程中存在共享相同通用列名的两个表的情况,并且使用别名表名,这将成为一个巨大的麻烦,因为我不能简单地搜索TableName.ColumnName。
如果有人能帮我解决这个问题,那就太好了。如果有人知道一个工具,或者自己编写了一个工具,那就太好了。它对于搜索java和c#代码也很有用。
发布于 2012-07-10 04:35:26
创建一个批处理文件search.bat,其中包含以下内容:
@echo off
for /F "usebackq delims=|" %%I in (`findstr /M /C:%2 %1`) do findstr /M /C:%3 "%%I"search.bat有三个参数。第一个是通配符文件名。第二个和第三个是搜索字符串。例如,
search *.h deprecated security查找包含单词"deprecated“和"security”的所有头文件。
发布于 2012-07-10 04:40:13
我假设您想要查找给定目录中包含pattern1、pattern2和pattern3的所有文件,然后:
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 pattern3https://stackoverflow.com/questions/11402113
复制相似问题