我正在尝试创建一个 java 程序,它接受一些用户输入变量并将它们传递给 perl 脚本(它实际上在 perl 脚本中找到某个字符串并将其替换为用户输入变量)。这是代码:
String sedMain = "sed -e ";
String sedFirstLine = "'s/AAA/"+newFirstLine+"/' -e ";
String sedNewCntr = "'s/BBB/"+newCntr+"/' -e ";
String sedNewSpacing = "'s/SPACE/"+newSpacing+"/' -e ";
String sedNewDmax = "'s/MAX/"+newDmax+"/'";
String sedFile = " /filepath/myperlscript.pl > /filepath/myNEWperlscript.pl";
String sedCommand=sedMain+sedFirstLine+sedNewCntr+sedNewSpacing+sedNewDmax+sedFile;
System.out.println("SED COMMAND: "+sedCommand);
String testRun = "touch /filepath/hello.txt";
Process runSedCommand;
runSedCommand = Runtime.getRuntime().exec(sedCommand);
我正在使用 IDE,当 sed 命令打印到控制台时,它看起来是正确的。我从控制台复制了 sed 命令并从终端运行它,它工作正常。我写了字符串“testRun”来查看Java中的进程是否有问题,它创建了文件“hello.txt”。但是由于某种原因,我的程序没有创建输出 perl 文件“myNEWperlscript.pl”。我很困惑为什么这不起作用。任何人都可以帮忙吗?