Muszę zastąpić (jakąś postacią w moim pliku i nie mogę tego zrobić. \(służy do grupowania w sed, a kiedy używałem \\(sed, traktował to jako \(charakter, a nie tylko (. Wydaje mi się to trudną sprawą.
Użyłem tego, aby zastąpić przestarzałe „split” php funkcją „wybuch”, upewniając się, że „split” jest poprzedzony spacją, a po nim „(”.grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'
tr
(anslate)echo 'Hello (world)' | tr '()' '[]'
; wychodziHello [world]
.Odpowiedzi:
Jeśli użyjesz sed bez
-r
(rozszerzone wyrażenia regularne), będzie działać tak, jak używa\(\)
zamiast()
grupować:Na przykład
Jeśli chcesz użyć
-r
, możesz włożyć do(
środka[]
npJak zauważa Lekensteyn, używanie
tr
może być bardziej odpowiednie, ponieważ jedynie zastępujesz i nie potrzebujesz pełnej mocy wyrażeń regularnych.źródło
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'