У меня есть старый код, похожий на OldUtility.getList(obj)
, который был преобразован в obj.getList()
. Я пытаюсь написать команду sed
, которая правильно рефакторит мой код. Пока что у меня есть:
sed -i '' 's/\(OldUtility.getList(\)\(.*\))/\2.getList()/g'
Проблема в том, что он жадно захватывает последнюю закрывающую скобку в строке. Это означает, что случаи, подобные приведенным ниже, не работают:OldUtility.getList(obj).size()
илиsomeFunc(OldUtility.getList(obj), otherObj.otherFunc())
Но я не хочу, чтобы он был не жадным, потому что он также должен обрабатывать такие случаи, как:OldUtility.getList(otherObj.toObj())
->otherObj.toObj().getList()
Итак, вопрос в том, как мне заставить \2
быть всем, что находится в круглых скобках OldUtility.getList(...)
?