我如何grep一个字符串排除其他字符串

时间:2015-10-07 13:08:37

标签: grep sh

我想做某事:

grep -A 10 'myString' && NOT 'anotherString'

如果我不需要-A 10我知道我可以管理greps并使用-v,但在这种情况下它不会像那样工作。所以我会这样做:

grep "myString" | grep -v "anotherString"

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试反转并将grep与-A 10参数放在一起。像这样:

grep -v 'anotherString' | grep -A 10 'myString'

答案 1 :(得分:0)

grep唯一支持POSIX的选项是-EFcefilnqsvx,因此请注意-A选项可能不会出现在grep的所有实现上。甚至在GNU grep上也没有指定“匹配或匹配”的选项,并且没有可以模拟这个的正则表达式,因为它可以做的就是提供额外的匹配,但是不能保留它们。基本上,单独使用grep实现此目的的唯一方法是使用管道。