我有一个包含此类字符串的日志文件:
[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/