【发布时间】:2013-03-12 04:43:00
【问题描述】:
我需要使用 shell 脚本替换变量赋值语句。例如:MyConstants.java 文件包含像
这样的行 String abcd = "ABCD";
String abc = "ABC";
String e = abcd + "e";
我需要将变量 abcd 替换为
String abcd = "newString";
String abc = "ABC";
String e = abcd + "e";
问题是它以随机方式包含 \n \r 字符
String abcd =
"ABCD";
or
String abcd
=
"ABCD";
String abc = "ABC";
String e = abcd + "e";
我看过How to replace catch block in *.java using sed? 但是所有命令都基于单行模式。 (将输入作为单行) 我该如何解决这个问题?请帮忙。
【问题讨论】:
-
我假设您需要替换变量的值并给出变量的名称,不是吗?
-
@Alepac:是的,我需要替换变量的值
-
你需要这个来修补旧的 BAD 源代码还是需要一种 java 预处理器?
-
@Alepac:实际上我们有一个共同的项目源。我们需要更新一个包含基本 url 变量的 java 文件,并为同一项目源生成不同的构建。
-
您可以使用属性或资源来加载可变内容,这些内容可以根据配置进行更改,而不是将某些 url 硬编码到代码中并在编译阶段进行更改
标签: string bash shell string-comparison