Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输入文件1文件2…等和输出文件1输出文件2…等的Unix脚本?_Java_Shell_Unix - Fatal编程技术网

Java 输入文件1文件2…等和输出文件1输出文件2…等的Unix脚本?

Java 输入文件1文件2…等和输出文件1输出文件2…等的Unix脚本?,java,shell,unix,Java,Shell,Unix,我试图编写一个脚本,通过.jar运行多个输入文件,并将其输出发送到类似命名的输出文件 为了更好地解释,我有一个jar文件,我们称之为HelloWorld.jar 我还有输入文件file1、file2和file3 我需要输出文件file1out,file2out,file3out 现在我的剧本只是 java -jar HelloWorld.jar < file1 > file1out java -jar HelloWorld.jar < file2 > file2out e

我试图编写一个脚本,通过.jar运行多个输入文件,并将其输出发送到类似命名的输出文件

为了更好地解释,我有一个jar文件,我们称之为HelloWorld.jar

我还有输入文件file1、file2和file3

我需要输出文件file1out,file2out,file3out

现在我的剧本只是

java -jar HelloWorld.jar < file1 > file1out
java -jar HelloWorld.jar < file2 > file2out
etc
java-jar HelloWorld.jarfile1out
java-jar HelloWorld.jarfile2out
等
有没有更快的方法

类似于

java -jar HelloWorld.jar < * > (not really sure for this part)
java-jar HelloWorld.jar<*>(这部分不太确定)

根据您使用的shell,您可以尝试for循环。这应该适用于sh、bash、zsh;但可能不是csh,ksh

for f in *
do
  java -jar HelloWorld.jar < $f > ${f}.out
done
f in的
*
做
java-jarhelloworld.jar<$f>${f}.out
完成

您可以做一些事情

  • 在shell脚本中编写一个unixforloop来循环文件并创建文件的输出。输出文件的名称将为inputfile+“fileout”
  • `

    用于/path/to/file1.txt/path/to/file2.txt/path/to/file3.txt中的文件
    做
    java-jar HelloWorld.jar$programmatical\u file\u name
    完成
    
    ` 2.您可以参数化java应用程序以接受文件列表作为输入(字符串args[]),并在文件中创建与#1相同的逻辑。我宁愿推荐#2

  • 您甚至可以让java应用程序读取目录中的所有文件,并在同一目录中创建所有输出文件
  • {1..9}中i的
    
    java-jarhelloworld.jarfile${i}out
    
     for file in /path/to/file1.txt /path/to/file2.txt /path/to/file3.txt
        do            
            java -jar HelloWorld.jar < file1 > $programmatic_file_name
        done
    
    for i in {1..9}
      java -jar HelloWorld.jar < file${i} > file${i}out