/ / आउटपुट फ़ाइल में उपनिर्देशिका और पाइप इनपुट के माध्यम से लूप कैसे करें - जावा, लिनक्स, बैश

एक आउटपुट फ़ाइल - जावा, लिनक्स, बैश में उपनिर्देशिका और पाइप इनपुट के माध्यम से लूप कैसे करें

मैंने पहले कभी झगड़ा नहीं किया और मैं संघर्ष कर रहा हूंएक इनपुट पाइप करने के लिए प्रत्येक उपनिर्देशिका के माध्यम से लूप करने के लिए एक स्वचालित स्क्रिप्ट बनाने के साथ। वर्तमान में मैं जावा में एक प्रोग्राम चलाने की कोशिश कर रहा हूं जिसे इनपुट इनपुटफाइल से प्रत्येक उपयोगकर्ता इनपुट दर्ज करने और परिणामों को आउटपुट करने के लिए स्क्रिप्ट किया गया है। इनपुट फ़ाइल का उदाहरण:

login
logout

आउटपुट का उदाहरण:

You have logged in
You have logged out

लिपि फ़ोल्डर में है /test/

इनपुट उपनिर्देशिका में हैं /test/input/somesubdirectory/someinput.txt मैं जो करना चाहता हूं वह जावा और आउटपुट को ऐसे फ़ोल्डर में चलाने के लिए प्रत्येक इनपुट टेक्स्ट के माध्यम से लूप है

/test/output/somesubdirectory/output.log

जावा सीधे परीक्षण फ़ोल्डर के बाहर है

मैंने क्या किया है:

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 № 1

आप उपयोग कर सकते हैं:

while IFS= read -d "" -r file; do
java Test < "$file" > /test/output/login/output-$((++counter)).log
done < <(find /test/input -name "*.txt" -print0)

बाश एफएक्यू में इस पैटर्न के बारे में और पढ़ें