我有一个包含此类字符串的日志文件:

[1234(0) #1]
[1234(1) #2]
[1234(3) #0]

依此类推...(注意每个字符串中的最后一个空格)

因此,我需要将这些字符串替换为空。我试图执行:
$ sed -i 's/\[1234\(\d\)\s#\d\]\s//g' log.txt

但它似乎不起作用...确实,如果我运行了:
$ grep '\[1234([0-9])\s#[0-9]\]\s' log.txt

我仍然收到那些字符串...怎么了?

最佳答案

您的sed版本可能不支持\s\d。此外,默认情况下()不需要转义。以下对我有用

sed 's/\[1234([[:digit:]])[[:space:]]#[[:digit:]]\][[:space:]]//g' file

关于regex - 如何使用sed替换这种字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22745829/

10-13 05:02