我有一个名为的文件messages.properties
,其中包含带有语法的行<key>=<string>
。每个key
都是独一无二的,但string
不是。许多键可以有相同的字符串。同样在同一个文件夹中,我有一些 java 类从messages.properties
. 他们通过方法获取字符串Messages.getString("<key>")
。所以我需要做的是Messages.getString("<key>")
通过"<key>"
从messages.properties
. 这是来自@potong 的 sed onliner 可以解决问题。
sed 's|^\([^=]*\)=\(.*\)|s@Messages.getString("\1")@"\2"@g|;s/\\/\\\\/g' messages.properties |
sed -i -f - *.java
然而,这个问题是它不适用于messages.properties
. 我应该如何修改脚本来解决这个问题?这是一个相关的问题Search and replace with sed 。
示例messages.properties
Sting.1=Str
Sting.2=String
Sting.3=String
Sting.4=Strring
Sting.5=Str
示例 java 类
System.Out.println(Messages.getString("Sting.1"));
System.Out.println(Messages.getString("Sting.2"));
System.Out.println(Messages.getString("Sting.3"));
System.Out.println(Messages.getString("Sting.4"));
System.Out.println(Messages.getString("Sting.5"));
需要的java类
System.Out.println("Str");
System.Out.println("String");
System.Out.println("String");
System.Out.println("Strring");
System.Out.println("Str");