Я должен заменить (
какой-то символ в моем файле, и я не могу этого сделать. \(
используется для группировки в sed, а когда я использовал \\(
sed, он рассматривал его как \(
символ, а не просто (
. Это кажется сложным делом для меня.
27
tr
(anslate)echo 'Hello (world)' | tr '()' '[]'
; это выводитHello [world]
.Ответы:
Если вы используете sed без
-r
(расширенные регулярные выражения), он будет работать так, как он использует,\(\)
а не()
для группировки:Например
Если вы хотите использовать,
-r
вы можете положить(
внутрь[]
, например,Как отмечает Лекенштейн, использование
tr
может быть более уместным, поскольку вы просто заменяете и вам не нужны все возможности регулярных выражений.источник
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'