我之前从未做过bash,而且我正在努力创建一个自动脚本来遍历每个子目录来管道输入。 目前我正在尝试运行Java编写的程序,该程序用于从输入文本文件输入每个用户输入并输出结果。 输入文件示例:
login
logout
输出示例:
You have logged in
You have logged out
该脚本位于/test/
输入位于子目录中
/test/input/somesubdirectory/someinput.txt
我想要做的是遍历每个输入文本以运行java并输出到像这样的文件夹
/test/output/somesubdirectory/output.log
java直接位于测试文件夹
之外我做了什么:
java Test < /test/input/login/input.txt > /test/output/login/output.txt
我只知道如何直接访问一个输入和一个输出,但我不确定如何循环每个子目录的每个输入
我试过这样做:
counter=0
for i in /test/input/*/*.txt;
do
java Test < $i.txt > /test/output/login/$(counter).log
counter=$((counter+1))
done
答案 0 :(得分:0)
您可以使用:
while IFS= read -d '' -r file; do
java Test < "$file" > /test/output/login/output-$((++counter)).log
done < <(find /test/input -name '*.txt' -print0)