我试图用来grep匹配包含两个不同字符串的行。我尝试了以下内容,但是这匹配包含string1 或 string2的行,而不是我想要的行。grep 'string1\|string2' filename那么,如何grep只与包含两个字符串的行匹配?
3 回答
大话西游666
TA贡献1817条经验 获得超14个赞
我认为这是您想要的:
grep -E "string1|string2" filename
我认为这样的答案:
grep 'string1.*string2\|string2.*string1' filename
仅与同时存在两者而不是其中一个或两者都存在的情况匹配。
慕慕森
TA贡献1856条经验 获得超17个赞
您可以使用 grep 'string1' filename | grep 'string2'
要么, grep 'string1.*string2\|string2.*string1' filename
小唯快跑啊
TA贡献1863条经验 获得超2个赞
要在任何位置搜索包含所有单词的文件,且顺序不限:
grep -ril \'action\' | xargs grep -il \'model\' | xargs grep -il \'view_type\'
第一个grep开始进行递归搜索(r),忽略大小写(i)并列出(打印出)与(l)匹配的文件名称,该名称与文件中'action'任何位置出现的一个词(带单引号)相同。
后续的搜索将搜索其他术语,从而保持不区分大小写并列出匹配的文件。
您将获得的文件的最终列表将是包含这些术语的文件的列表,文件中任何位置的顺序都可以。
- 3 回答
- 0 关注
- 2037 浏览
添加回答
举报
0/150
提交
取消