【发布时间】: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 过滤掉多个文本块的正确格式是什么?
【问题讨论】:
我正在尝试过滤掉我的日志文件中不断重复的几个文本块。例如;
grep -v ("string one that I don't want" \| "string two that I don't want") file.log
我尝试了几种变体并尝试调整空白。有时它会过滤掉第一个字符串,有时两者都不会。使用 grep 过滤掉多个文本块的正确格式是什么?
【问题讨论】:
您可以在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
【讨论】:
-vis synonymous to--invert-match(我会猜到“冗长”并偶然发现:)