我有一个 java 类文件,我需要在目录中的每个文件上运行它。我目前正在使用以下命令在目录中的每个文件上运行程序
find . -type f -exec java JavaProgram {} \;
然而,我不需要在终端中显示结果,而是需要它将每次调用的结果输出到一个单独的文件中。有没有我可以使用的命令可以在整个目录上递归调用 java 程序并将每次调用的终端输出保存到单独的文件?
有点像运行 java JavaProgram inputfile > outputdir/outputfile
但递归遍历 'inputfile'
和 'outputfile'
目录中的每个文件> 具有相同的名称。
最佳答案
怎么样
for i in $(find . -type f)
do
java JavaProgram $i > ${i}.out
done
这将针对每个文件运行程序并将输出写入每个文件相同目录中的 filename.out
。这种方法比单行子 shell 方法稍微灵活一些,因为您可以进行任意转换以生成输出文件名,例如使用 basename
删除后缀。
关于java - 如何在 UNIX 中保存多个文件的终端输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10459223/