Tag: sed

用sed搜索并替换

上周我意外地将我的日食项目的所有字符串外化。 我需要恢复这个,我唯一的希望就是sed。 我试图创建脚本但是可怜失败因为我是sed的新手,这将是一个非常复杂的操作。 我需要做的是: class.java文件中的字符串当前采用以下格式(方法) Messages.getString() 。 示例: 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; } } } 键和匹配的字符串在messages.properties文件中,格式如下。 VSDataSource.92=No of rows in db = VSDataSource.93=Verifying db entry : VSDataSource.94=DB […]

sed命令不能从java工作

我试图从java运行一个sed命令没有成功。 这是我的java代码: String[] cmd = {“sed”, “-i”, “‘”+lineIndex+”s/”+line+”/”+currentBid+”/g'”, “/data/jsp/items.xml”}; Runtime.getRuntime().exec(cmd); 我也尝试过: String[] cmd = {“/bin/sh”,”-c”,”sed”, “-i”, “‘”+lineIndex+”s/”+line+”/”+currentBid+”/g'”, “/data/jsp/items.xml”}; Runtime.getRuntime().exec(cmd); 事实是,如果我打印出cmd String的内容并在终端中运行它确实有效。 它只是因为某种原因没有从java执行它。 更清楚,当我直接从终端运行命令时,文件“items.xml”发生了变化。 当我从java运行它时,文件不会改变。 我已经validation了命令是正确的,如下所示。 我错过了什么吗? cmd的输出是sed -i ’21s/2/102/g’ /data/jsp/items.xml **编辑 我根据以下评论做了以下更改。 但是输出没有变化。 String[] cmd = {“/bin/sh”,”-c”,”sed”, “-i”, “‘”+lineIndex+”s/”+line+”/”+currentBid+”/g'”, “/data/jsp/items.xml”}; Process p = Runtime.getRuntime().exec(cmd); p.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line2 = reader.readLine(); […]