首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用grep排除一个单词?

如何使用grep排除一个单词?
EN

Stack Overflow用户
提问于 2010-12-27 19:09:06
回答 7查看 919.2K关注 0票数 586

我需要像这样的东西:

代码语言:javascript
复制
grep ^"unwanted_word"XXXXXXXX
EN

回答 7

Stack Overflow用户

发布于 2012-11-21 16:07:57

我把这个问题理解为“如何匹配一个单词但排除另一个单词”,其中一个解决方案是两个grep :第一个grep找到想要的"word1",第二个grep排除"word2":

代码语言:javascript
复制
grep "word1" | grep -v "word2"

在我的例子中:我需要区分"plot“和"#plot”,而grep的"word“选项做不到这一点("#”不是字母数字)。

希望这能有所帮助。

票数 105
EN

Stack Overflow用户

发布于 2010-12-27 19:14:17

如果你的grep支持带有-P选项的Perl正则表达式,你可以这样做(如果是bash;如果是tcsh,你需要转义!):

代码语言:javascript
复制
grep -P '(?!.*unwanted_word)keyword' file

演示:

代码语言:javascript
复制
$ cat file
foo1
foo2
foo3
foo4
bar
baz

现在让我们列出除foo3之外的所有foo

代码语言:javascript
复制
$ grep -P '(?!.*foo3)foo' file
foo1
foo2
foo4
$ 
票数 43
EN

Stack Overflow用户

发布于 2010-12-27 19:16:43

使用grep -v进行反向匹配:

代码语言:javascript
复制
grep -v "unwanted word" file pattern
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4538253

复制
相关文章

相似问题

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