如何用 sed 替换左括号?

如何用 sed 替换左括号?

我必须(用文件中的某些字符替换,但我做不到。\(用于 sed 中的分组,当我\\(与 sed 一起使用时,它将其视为\(字符而不只是(.对我来说,这似乎是一个棘手的案例。

答案1

如果你使用 sed没有 -r(扩展正则表达式)它将按使用方式\(\)而不是()分组方式工作:

sed -e 's/(/X/g'

例如

$ echo "foo (bar) (baz)" | sed -e 's/(/X/g'
foo Xbar) Xbaz)

如果你想使用-r你可以放入(里面[],例如

sed -re 's/[(]/X/g'

作为莱肯斯坦评论使用tr可能更合适,因为您只是替换并且不需要正则表达式的全部功能。

相关内容