我必须(
用文件中的某些字符替换,但我做不到。\(
用于 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
可能更合适,因为您只是替换并且不需要正则表达式的全部功能。