我正在尝试使用SED删除包含单词“DEBUG”的日志文件中的行。 DEBUG可以是:
以下正则表达式正常:
(?m)( |^)DEBUG\s
但是当我尝试将它与sed一起使用时,没有任何效果。
sed '/(?m)( |^)DEBUG\s/d' infile.log > result.txt
我试图逃避像()或\或甚至^的somme字符,但没有任何成功。 谢谢你的帮助。
例如,我有一个包含以下内容的文件:
...
DEBUG aaaaaaaaaaaaa aaaaa
DEBUG bbbbbbbb bbb bbbb
ccc cccDEBUGcccc cccc cc
dddDEBUG dddd ddd
DEBUGeeee eee eeee
fff fff fff fff ff DEBUG fff
...
所以预期的结果应该是:
...
DEBUG aaaaaaaaaaaaa aaaaa
DEBUG bbbbbbbb bbb bbbb
fff fff fff fff ff DEBUG fff
...
但相反,所有行都会出现在结果文件中。
答案 0 :(得分:1)
您好,实际上这里不需要sed
命令。 egrep命令可以解决您的问题。
egrep " \DEBUG|^DEBUG\ " infile.log > result.txt
现在你的输出文件result.txt如下所示: -
DEBUG aaaaaaaaaaaaa aaaaa
DEBUG bbbbbbbb bbb bbbb
fff fff fff fff ff DEBUG fff