2011-12-23 14 views
6

के साथ फ़ोल्डर में सभी फ़ाइलों का नाम बदलें मेरे पास एक फ़ोल्डर है और उस फ़ोल्डर के अंदर मेरे पास मनमानी नामों के साथ 10-15 फ़ाइलें हैं। फ़ाइल नामों में रिक्त स्थान शामिल हो सकते हैं। उदाहरण के लिए: wWw.page.com __ (576)_002। टर्मिनल में, जब मैं w दबाता हूं और फिर tab फ़ाइल नाम इस तरह दिखाई देता है: wWw.page.com\ \ __\ \(576\)_0.txtबढ़ती संख्या

मुझे कुछ स्क्रिप्ट चाहिए जो इस 0.txt, 1.txt, 2.txt और अन्य सभी फ़ाइलों का नाम बदल देगी।

मेरी समस्या है: wWw.page.com __ (576)_002.txt file not found

index=0; 
for i in $(ls *.txt) 
do 
    cp "${i}" $index".txt" 
done 
+1

'पर्ल -e'rename $ _, $ i ++ q (.txt), जबकि (<*.txt>) '' – jfs

उत्तर

14
ls के बजाय

glob करने की कोशिश:।

index=0; 
for name in *.txt 
do 
    cp "${name}" "${index}.txt" 
    index=$((index+1)) 
done 
+0

यह के अलावा 'है *। txt'। –

+0

और आपको * '' 'की आवश्यकता नहीं है *' '' '' इंडेक्स = $ ((इंडेक्स + 1)) ' –

+0

@ माइकल क्रेलिन-हैकर धन्यवाद! :-) – cnicutar

संबंधित मुद्दे