繁体   English   中英

在 Groovy 中如何替换文件中的字符串?

[英]In Groovy how to replace a string in a file?

我正在遵循使用 groovy 替换文件中的字符串中给出的答案,但出现错误。 我只想替换,例如

From
version=1.1.0

To
version=1.1.1

在某个文件中。 我愿意

String sv1 = '1.1.0'
String sv2 = '1.1.1'
def file = new File(`/some_path/someFile')
def fileText = file.replaceAll("version=$sv1", "version=$sv2")
file.write(fileText)

我得到

Caught: groovy.lang.MissingMethodException: No signature of method: java.io.File.replaceAll() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, org.codehaus.groovy.runtime.GStringImpl) values: [version=1.1.0, version=1.1.1]
groovy.lang.MissingMethodException: No signature of method: java.io.File.replaceAll() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, org.codehaus.groovy.runtime.GStringImpl) values: [version=1.1.0, version=1.1.1]
    at pre-push.updatePatchVersion(pre-push:154)
    at pre-push.compareVersions(pre-push:188)
    at pre-push.run(pre-push:219)

字符串中的点 (.) 是否弄乱了它? 如果是这样,正确的语法是什么? 谢谢。

您需要在文件的内容上调用replaceAll() ,而不是在File实例本身上。

def fileText = file.text.replaceAll("version=$sv1", "version=$sv2")

这将在一行中完成您的整个任务

new File(`/some_path/someFile').text=new File(`/some_path/someFile').getText().replaceAll("version=1.1.0", "version=1.1.1")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM