Unix脚本输入file1 file2..等等,输出file1out file2out…等等



我正在尝试编写一个脚本,通过.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.jar < * > (not really sure for this part)

你可以做一些事情

  1. 在shell脚本中编写unix for循环,循环遍历文件并创建一个文件输出。输出文件的名称将是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应用程序进行参数化,以接受文件列表作为输入(String args[]),并在文件中创建与#1相同的逻辑。我宁愿推荐#2

  1. 您甚至可以让您的java应用程序读取目录中的所有文件,并在同一目录
  2. 中创建所有输出文件。

根据您使用的shell,您可以尝试for循环。这应该在sh, bash, zsh中工作;但可能不是csh,而是ksh。

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

最新更新