gpt4 book ai didi

regex - 使用 sed 转义正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:48 25 4
gpt4 key购买 nike

我正在尝试使用 SED 删除日志文件中包含单词“DEBUG”的行。调试可以是:

  • 该行的第一个词。
  • 行内至少有一个空格的单词。

以下正则表达式工作正常:

(?m)( |^)DEBUG\s

但是当我尝试将它与 sed 一起使用时,没有任何效果。

sed '/(?m)( |^)DEBUG\s/d' infile.log > result.txt

我试图转义某些字符,例如 () 或\甚至 ^,但没有成功。感谢您的帮助。

例如,我有一个文件包含:

...
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
...

但是,所有行都出现在结果文件中。

最佳答案

您好,实际上您在这里不需要 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

关于regex - 使用 sed 转义正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49231704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com