2014-05-05 26 views
0

我正在尝试编写一个脚本,该脚本通过.jar运行多个输入文件并将其输出发送到名称类似的输出文件。Unix脚本输入file1 file2 ... etc并输出file1out file2out ...等?

为了更好地解释,我有一个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.jar < * > (not really sure for this part) 

回答

0

根据其外壳使用的是,你可以尝试一个for循环。这应该在sh,bash,zsh中工作;但可能不是csh,ksh。

for f in * 
do 
    java -jar HelloWorld.jar < $f > ${f}.out 
done 
1

你可以做几件事情

  1. 写UNIX通过文件循环在shell脚本中循环,并创建一个输出到文件中。输出文件的名称将是inputfile +“fileout”。

`

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 

` 2.您可以参数化您的Java应用程序接受文件列表作为输入(字符串ARGS []),并在文件中创建相同的逻辑#1。我宁愿建议#2

  1. 你甚至可以让你的Java应用程序读取目录中的所有文件,并创建所有输出文件在同一目录
0
for i in {1..9} 
    java -jar HelloWorld.jar < file${i} > file${i}out 
+0

请完善你的答案。解释这是一个好的开始。 – Deduplicator