【发布时间】:2016-07-25 22:02:58
【问题描述】:
我有一些看起来像 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(...) 括号内的所有内容?
【问题讨论】:
标签: regex bash sed regex-greedy