35

是否可以在无法使用占位符/标记的 gradle 中进行简单的字符串替换。

例如:给定temp.txt替换所有出现的xxxwith yyy

4

4 回答 4

54

阅读以下文本:

String contents = new File( 'whatever.txt' ).getText( 'UTF-8' ) 

替换文本

contents = contents.replaceAll( 'xxx', 'yyy' )

再把文字写出来

new File( 'replaced.txt' ).write( contents, 'UTF-8' )

您应该能够将它们包装成一个任务并像往常一样调用该任务

于 2012-05-10T11:17:31.010 回答
0

我假设您正在谈论资源处理。在这种情况下,您可以使用自由格式filter方法:

processResources {
  filter { String line -> line.replace(...) }
}
于 2012-05-10T11:30:51.497 回答
0

要就地替换:

ant.replaceregexp(file: fout, flags: "g",
      match: 'schemaLocation="[^"]+/', replace: 'schemaLocation="', encoding: 'UTF-8')

语法参考:

于 2018-06-05T19:39:47.690 回答
0

这是 @tim_yates 答案的 Kotlin DSL 等效项:

val file = file("whatever.txt")
val newContents = file.readText().replace(Regex("xxx"), "yyy")
file.writeText(newContents) // Overwrites the file with the new content
于 2021-05-31T09:26:10.303 回答