2014-05-05 56 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