首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多个文件中搜索多个字符串的Grep工具

在多个文件中搜索多个字符串的Grep工具
EN

Stack Overflow用户
提问于 2012-07-10 03:52:21
回答 2查看 1.5K关注 0票数 0

我意识到在这个论坛上似乎有很多关于在文件中搜索多个字符串的问题,但我找不到一个解决方案来搜索多个文件中的多个字符串。

使用竖线分隔的搜索结果始终是一个OR语句。我想要的是提供"AND“语句的东西,无论是正则表达式还是允许多个输入的工具。

我尝试过dnGrep、WinGrep、PowerGrep和BareGrep,但它们似乎都不提供此功能。对于那些使用grep存储过程的人来说,我相信你们理解我的痛苦。

我正在尝试搜索在存储过程中存在共享相同通用列名的两个表的情况,并且使用别名表名,这将成为一个巨大的麻烦,因为我不能简单地搜索TableName.ColumnName。

如果有人能帮我解决这个问题,那就太好了。如果有人知道一个工具,或者自己编写了一个工具,那就太好了。它对于搜索java和c#代码也很有用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 04:35:26

创建一个批处理文件search.bat,其中包含以下内容:

代码语言:javascript
复制
@echo off
for /F "usebackq delims=|" %%I in (`findstr /M /C:%2 %1`) do findstr /M /C:%3 "%%I"

search.bat有三个参数。第一个是通配符文件名。第二个和第三个是搜索字符串。例如,

代码语言:javascript
复制
search *.h deprecated security

查找包含单词"deprecated“和"security”的所有头文件。

票数 2
EN

Stack Overflow用户

发布于 2012-07-10 04:40:13

我假设您想要查找给定目录中包含pattern1、pattern2和pattern3的所有文件,然后:

代码语言:javascript
复制
grep -r -l pattern1 . | xargs grep -l pattern2 | xargs grep -l pattern3

-r选项递归以检查所有文件。-l只列出匹配的文件。xargs将前一个grep中的文件列表转换为下一个grep的输入参数。如果你有很多模式,你可以把它们放在一个脚本或别名中。

如果要将搜索限制为某些文件类型,可以先使用find限制输入文件:

代码语言:javascript
复制
find . -name "*.h" | xargs grep -l pattern1 | xargs grep -l pattern2 | xargs grep -l pattern3
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11402113

复制
相关文章

相似问题

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