![如何用 sed 替换左括号?](https://linux22.com/image/48823/%E5%A6%82%E4%BD%95%E7%94%A8%20sed%20%E6%9B%BF%E6%8D%A2%E5%B7%A6%E6%8B%AC%E5%8F%B7%EF%BC%9F.png)
我必须(
用文件中的某些字符替换,但我做不到。\(
用于 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
可能更合适,因为您只是替换并且不需要正则表达式的全部功能。