gpt4 book ai didi

java - 使用 sed 搜索并替换

转载 作者:行者123 更新时间:2023-12-01 07:37:29 32 4
gpt4 key购买 nike

上周我不小心将 Eclipse 项目的所有字符串外部化了。我需要恢复这个,我唯一的希望是 sed 。我尝试创建脚本,但遗憾地失败了,因为我是 sed 新手,这将是一个非常复杂的操作。我需要做的是:

class.java 中的字符串文件当前采用以下格式(方法)Messages.getString(<key>) 。示例:

    if (new File(DataSource.DEFAULT_VS_PATH).exists()) {
for (int i = 1; i <= c; i++) {
if (!new File(DataSource.DEFAULT_VS_PATH
+ Messages.getString("VSDataSource.89") + i).exists()) { //$NON-NLS-1$
getnewvfspath = DataSource.DEFAULT_VS_PATH
+ Messages.getString("VSDataSource.90") + i; //$NON-NLS-1$
break;
}
}
}

key 和匹配字符串位于 messages.properties 中文件格式如下。

VSDataSource.92=No of rows in db = 
VSDataSource.93=Verifying db entry :
VSDataSource.94=DB is open
VSDataSource.95=DB is closed
VSDataSource.96=Invalid db entry for
VSDataSource.97=\ removed.
key=string

所以我需要这种格式的 java 文件:

    if (new File(DataSource.DEFAULT_VS_PATH).exists()) {
for (int i = 1; i <= c; i++) {
if (!new File(DataSource.DEFAULT_VS_PATH
+ "String 2" + i).exists()) { //$NON-NLS-1$
getnewvfspath = DataSource.DEFAULT_VS_PATH
+ "String 1" + i; //$NON-NLS-1$
break;
}
}
}

我怎样才能用 sed 来完成这个任务? ?或者有更简单的方法吗?

最佳答案

这可能对你有用(GNU sed?):

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

关于java - 使用 sed 搜索并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002904/

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