Saya harus mengganti (
dengan beberapa karakter di file saya, dan saya tidak bisa melakukannya. \(
digunakan untuk pengelompokan dalam sed dan ketika saya digunakan \\(
dengan sed, itu diperlakukan sebagai \(
karakter bukan hanya (
. Sepertinya ini kasus yang sulit bagi saya.
27
tr
(anslate):echo 'Hello (world)' | tr '()' '[]'
; itu outputHello [world]
.Jawaban:
Jika Anda menggunakan sed tanpa
-r
(ekspresi reguler yang diperluas) itu akan berfungsi seperti yang digunakan\(\)
daripada()
untuk pengelompokan:Sebagai contoh
Jika Anda ingin menggunakan
-r
Anda dapat memasukkan ke(
dalam[]
, misalnyaSebagai pernyataan Lekensteyn menggunakan
tr
mungkin lebih tepat karena Anda hanya mengganti dan Anda tidak perlu kekuatan penuh ekspresi reguler.sumber
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'