Câu trả lời:
Nếu bạn sử dụng sed mà không có -r
(biểu thức chính quy mở rộng), nó sẽ hoạt động như nó sử dụng \(\)
chứ không phải ()
để nhóm:
sed -e 's/(/X/g'
Ví dụ
$ echo "foo (bar) (baz)" | sed -e 's/(/X/g'
foo Xbar) Xbaz)
Nếu bạn muốn sử dụng, -r
bạn có thể đặt (
bên trong []
, vd
sed -re 's/[(]/X/g'
Như Lekensteyn nhận xét sử dụng tr
có thể thích hợp hơn khi bạn được chỉ đơn thuần là thay thế và bạn không cần phải toàn bộ sức mạnh của biểu thức thông thường.
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'
tr
(anslate) :echo 'Hello (world)' | tr '()' '[]'
; nó đầu raHello [world]
.