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