java - 如何在 UNIX 中保存多个文件的终端输出?

标签 java linux shell unix

我有一个 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/

相关文章:

c# - 与 Autofac 最相似的 Java IoC 容器

c++ - 在 linux 上为 windows 编译

bash - 如何删除文件中除第一个匹配行之外的重复行

linux - ELF文件格式中的section和segment有什么区别

c - 尝试使用 semget() 获取信号量集,但我不断收到 EEXIST 错误,即使在创建新 key 后也是如此

linux - 使用 IFS 分割字符串示例

bash - 如何在单独的行上打印从 shell 扩展返回的每个单词?

java - 导出后 URL 不应包含 Servlet 名称

java - 我怎样才能最好地将这个java方法翻译成python

java - “Cannot find symbol”或 “Cannot resolve symbol”错误是什么意思?