2011-05-25 6 views
6

मुझे लूप के लिए कई निर्देशिकाओं से फ़ाइलों की आवश्यकता है।एकाधिक फ़ोल्डरों में फ़ाइलों के लिए लूप के लिए - bash shell

for f in ./test1/*; 
... 
for f in ./test2/*; 
... 
for f in ./test3/*; 
... 

प्रत्येक पाश में मैं एक ही बात कर रहा हूँ: अब के रूप में, मैं निम्नलिखित कोड है। क्या एकाधिक फ़ोल्डर्स से फाइलें प्राप्त करने का कोई तरीका है?

अग्रिम

उत्तर

12

धन्यवाद for f in ./{test1,test2,test3}/* या for f in ./*/* आप क्या चाहते हैं पर निर्भर करता है की कोशिश करो।

+0

धन्यवाद, यह मेरे लिए काम करता है! – fanjabi

+0

मेरी खुशी! क्या आप इस उत्तर को "स्वीकृत" के रूप में चिह्नित कर सकते हैं? चीयर्स। – evgeny

5

आप for, तो सबसे आसान जवाब है एकाधिक "शब्द" दे सकते हैं:

for f in ./test1 ./test2 ./test3; do 
    ... 
done 

वहाँ टाइपिंग की मात्रा को कम करने के लिए तो विभिन्न चालें कर रहे हैं; अर्थात् globbing और ब्रेस विस्तार।

# the shell searchs for matching filenames 
for f in ./test?; do 
... 
# the brace syntax expands with each given string 
for f in ./test{1,2,3}; do 
... 
# same thing but using integer sequences 
for f in ./test{1..3} 
संबंधित मुद्दे