Nawiasy są traktowane jako część składni wyrażeń regularnych (wskazują, że ich zawartość powinna być traktowana jako grupa), a nie jako dosłowne znaki do dopasowania. Aby powiedzieć parsera wyrażeń regularnych, aby traktował je jako znaki dosłowne, możesz uciec z nich za pomocą odwrotnych ukośników:
find /Users/Ad//Desktop/Project/src/ -type f -name '*.java' -exec perl -pi -w -e 's/getGreenObject\(\)/newObject("green")/g;' {} \;
Teraz: czy masz kopię zapasową przed tym wydarzeniem, więc możesz wrócić i spróbować ponownie? Podczas wykonywania takiej zmiany masy zawsze powinieneś upewnić się, że twoja kopia zapasowa jest aktualna (masz kopię zapasową, prawda?), A także przeprowadzić mały test przed wyłączeniem go na głównej bazie kodu.
Jeśli nie masz kopii zapasowej, do której możesz wrócić, prawdopodobnie możesz to naprawić w następujący sposób:
find /Users/Ad//Desktop/Project/src/ -type f -name '*.java' -exec perl -pi -w -e 's/newObject\("green"\)\(\)/newObject("green")/g;' {} \;
Zauważ, że prawdopodobnie powiedziałem. Obowiązują tutaj te same zalecenia: najpierw upewnij się, że masz aktualną kopię zapasową i przetestuj ją na kilku plikach. jestem nie odpowiedzialny, jeśli nieodwracalnie zniszczy twoją bazę kodu.