मैं find
कमांड का उपयोग कर फ़ाइल नामों की एक सूची स्टोर करने के लिए एक सरणी का उपयोग करने का प्रयास कर रहा हूं।मैं बैश स्क्रिप्ट में खोजने के परिणामों को कैसे संसाधित कर सकता हूं?
किसी कारण से सरणी स्कूल द्वारा उपयोग किए जाने वाले बैश में काम करने में विफल रहता है, मेरा प्रोग्राम हालांकि अपने लैपटॉप पर काम करता है।
array = (`find . -name "*.txt"`) #this will store all the .txt files into the array
तब मैं सरणी आइटम एक्सेस और सभी बिल्ली आदेश का उपयोग फ़ाइलों की एक प्रतियां बना सकते हैं: वहाँ एक और तरीका यह करने के लिए अगर
तो मैं सोच रहा था, इस मैं क्या है।
क्या कोई सरणी का उपयोग किए बिना ऐसा करने का कोई और तरीका है?
find . -name '*.txt' | while read line; do
echo "Processing file '$line'"
done
जैसे:
बहुत बहुत शुक्रिया !! यह काम करता है और मैंने कुछ नया – Shellscriptbeginner
सीख लिया है 'फॉर' लूप का उपयोग करना निश्चित रूप से यहां एक बेहतर विकल्प है। एक सरणी का उपयोग करना काम करेगा सिवाय इसके कि यह पूरी सूची को एक चर में पढ़ता है और फिर परिवर्तनीय पर फिर से चलाता है। यह संस्करण प्रत्येक फ़ाइल नाम को पढ़ता है क्योंकि यह 'ढूंढ' से आता है और इसे इनलाइन प्रक्रिया करता है। –
डी। शॉली, क्या आप कृपया लूप के साथ नमूना पोस्ट कर सकते हैं? मुझे लगता है कि नाम में रिक्त स्थान वाली फाइलों के लिए भी काम करना चाहिए। –