gpt4 book ai didi

linux - sed 脚本不适用于某些条目

转载 作者:太空狗 更新时间:2023-10-29 11:20:13 25 4
gpt4 key购买 nike

我有一个名为 messages.properties 的文件其语法为 <key>=<string> .每个key是独一无二的,但是 string不是。许多键可以有相同的字符串。同样在同一个文件夹中,我有一些 java 类,它们从 messages.properties 中读取字符串。 .他们通过 Messages.getString("<key>") 方法获取字符串.所以我需要做的是转换 Messages.getString("<key>")在 java 类中放入 "<key>"通过从 messages.properties 中读取它们的值.这是来自@potong 的 sed 在线工具。

sed 's|^\([^=]*\)=\(.*\)|s@Messages.getString("\1")@"\2"@g|;s/\\/\\\\/g' messages.properties |
sed -i -f - *.java

然而,问题是它对 messages.properties 中的一些人不起作用。 .我应该如何修改脚本来解决这个问题?这是一个相关问题Search and replace with sed .

示例消息.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");

最佳答案

实际的问题是eclipse split 了

Messages.getString("String.3")

分为两行,

    Messages
.getString("String.3")

所以这有效。

sed 's|^\([^=]*\)=\(.*\)|s@.getString("\1")@"\2"@g|;s/\\/\\\\/g' messages.properties |
sed -i -f - *.java

关于linux - sed 脚本不适用于某些条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com