【问题标题】:How do I Invert search using grep for multiple strings of text如何使用 grep 反转搜索以获取多个文本字符串
【发布时间】:2013-12-15 05:03:26
【问题描述】:

我正在尝试过滤掉我的日志文件中不断重复的几个文本块。例如;

grep -v ("string one that I don't want" \| "string two that I don't want") file.log

我尝试了几种变体并尝试调整空白。有时它会过滤掉第一个字符串,有时两者都不会。使用 grep 过滤掉多个文本块的正确格式是什么?

【问题讨论】:

    标签: regex bash shell grep


    【解决方案1】:

    您可以在grep 中多次使用-e 选项来跳过多个搜索项:

    grep -v -e "string one that I don't want" -e "string two that I don't want" file.log
    

    或者使用regex 或者使用grep -E 以获得扩展的正则表达式支持:

    grep -vE 'string one|string two' file.log
    

    【讨论】:

    • 谢谢。两种方法都有效。我曾尝试使用那种 egrep 方法。但我想我在管道字符之间放置了空格。所以当时没用。现在可以了。
    • 请注意像我这样的谷歌用户:-vis synonymous to--invert-match(我会猜到“冗长”并偶然发现:)
    猜你喜欢
    • 2015-12-04
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    相关资源
    最近更新 更多