私は前に一度も強打しなかったし、私は苦労している各サブディレクトリをループして入力をパイプ処理する自動スクリプトを作成します。 現在、入力テキストファイルから各ユーザー入力を入力して結果を出力するようにスクリプト化されたプログラムを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
1つの入力と1つの出力に直接アクセスする方法しか知りませんが、各サブディレクトリから各入力をループする方法がわからない
私はしようとしました:
counter=0
for i in /test/input/*/*.txt;
do
java Test < $i.txt > /test/output/login/$(counter).log
counter=$((counter+1))
done
回答:
回答№1は0あなたが使用することができます:
while IFS= read -d "" -r file; do
java Test < "$file" > /test/output/login/output-$((++counter)).log
done < <(find /test/input -name "*.txt" -print0)
BASH FAQでこのパターンについてもっと読んでください。