首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用grep匹配一行中的两个字符串

使用grep匹配一行中的两个字符串
EN

Stack Overflow用户
提问于 2010-12-20 14:11:49
回答 21查看 428K关注 0票数 250

我尝试使用grep来匹配包含两个不同字符串的行。我尝试了以下方法,但这匹配包含string1 string2的行,这不是我想要的。

代码语言:javascript
复制
grep 'string1\|string2' filename

那么,如何仅使用grep匹配包含这两个字符串的行呢

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2010-12-20 14:16:52

您可以使用

代码语言:javascript
复制
grep 'string1' filename | grep 'string2'

代码语言:javascript
复制
grep 'string1.*string2\|string2.*string1' filename
票数 225
EN

Stack Overflow用户

发布于 2012-11-20 16:17:25

我想这就是你要找的:

代码语言:javascript
复制
grep -E "string1|string2" filename

我认为答案是这样的:

代码语言:javascript
复制
grep 'string1.*string2\|string2.*string1' filename

只匹配两个都存在的情况,而不是一个或另一个或两者都存在。

票数 213
EN

Stack Overflow用户

发布于 2013-12-26 17:53:28

要在任意位置搜索包含所有单词的文件,请执行以下操作:

代码语言:javascript
复制
grep -ril \'action\' | xargs grep -il \'model\' | xargs grep -il \'view_type\'

第一个grep启动递归搜索(r),忽略大小写(i),并列出(打印出)与文件中任意位置出现的一个术语(带有单引号的'action')匹配(l)的文件名。

随后的greps搜索其他术语,保留不区分大小写,并列出匹配的文件。

您将获得的最终文件列表将是包含这些术语的文件,在文件中的任何位置都可以按任意顺序排列。

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4487328

复制
相关文章

相似问题

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