我想知道grep中的正则表达式以匹配不是特定单词的所有内容。我知道如何不匹配不是单个字符的所有内容,
gibberish blah[^.]*jack
只要中间不包含句点,那将匹配 blah、jack 和介于两者之间的所有内容。但是有可能做这样的事情吗?
gibberish blah[^joe]*jack
匹配 blah、jack 和介于两者之间的所有内容,只要中间不包含“joe”一词?
更新: 如果更适合此目的,我也可以使用 AWK。
所以基本上,我只想得到句子“gibberish blah other words jack”,只要“joe”不在其他词中。
更新 2(答案,不同的问题):
对不起,我累了。该句子实际上可以包含单词“joe”,但不能包含两个。所以“胡言乱语 blah jill joe moo jack”会被接受,但“胡言乱语 blah jill joe moo joe jack”不会被接受。无论如何,我想出了解决问题的方法。只需 grep 搜索“gibberish.*jack”,然后计算字数 (wc) 以查看该句子中有多少“joes”。如果 wc 返回 1,则可以,但如果返回 2 或更多,则该句子是错误的。
所以,很抱歉问了一个甚至不能解决我的问题的问题。我会将 sputnick 的答案标记为正确的答案,因为他的答案看起来可以解决原始帖子问题。