/ /サブディレクトリをループして入力を出力ファイルにパイプする方法 - java、linux、bash

サブディレクトリとパイプ入力を出力ファイルにループする方法 - java、linux、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

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でこのパターンについてもっと読んでください。