2011-03-22 17 views
54

मेरे पास फाइलों का एक सेट है, उनमें से सभी nnn.MP4.mov मैं उनका नाम कैसे बदल सकता हूं ताकि यह केवल nnn.mov हो?मैं टर्मिनल का उपयोग कर फ़ाइलों का नाम कैसे बदल सकता हूं?

+1

muCommander इंस्टॉल करें। इसमें कुल कमांडर स्टाइल बैच रेंडर है। उस बकवास पर समय बर्बाद क्यों करें बैच कमांड के 100 अक्षर? क्योंकि – Nakilon

+0

@Nakilon कमांड लाइन सीखने निवेश –

उत्तर

81

पहले, निम्न के साथ एक सूखी रन (वास्तव में किसी भी फ़ाइलों का नाम नहीं होगा) कार्य करें:

for file in *.mov 
do 
    echo mv "$file" "${file/MP4./}" 
done 

यदि यह सब ठीक दिखता है, तो फ़ाइलों को वास्तव में पुनर्नामित करने के लिए तीसरे पंक्ति से echo हटा दें।

+18

क्यों यह काम नहीं कर रहा था समझ नहीं सकते हैं ... वहाँ उत्पादन था और ऐसा लग रहा था जैसे कि यह था, लेकिन यह वास्तव में कुछ भी नहीं कर रहा था। खैर मुझे अंत में पता चला कि आपको वास्तव में कुछ करने के लिए ECHO कथन को हटाने की आवश्यकता है (ओएसएक्स 10.7 वैसे भी)। तो यदि आप गूंज कथन रखते हैं तो आप यह देखने के लिए जांच कर सकते हैं कि नामांकन आपके जैसे काम करने जा रहा है या नहीं, फिर इसे काम करने के लिए गूंज हटा दें। तो विंडोज़ ऑफ़ रेन * -hd.png * .png से बराबर है: * .png में फ़ाइल के लिए एमवी "$ फ़ाइल" "$ {file/-hd /}" स्क्रिप्ट चलाने के लिए – jsherk

+2

किया गया है : 1. इसे 'rename.sh' फ़ाइल में सहेजें; 2. इसे निष्पादन योग्य 'chmod 755 rename.sh' बनाएं; 3. इसे वर्तमान फ़ोल्डर से लॉन्च करें जहां आपके पास नाम बदलने के लिए फ़ाइलें हैं और स्क्रिप्ट स्क्रिप्ट '।/Rename.sh'; 4. यदि परिणाम अच्छा है तो स्क्रिप्ट से 'echo' हटाएं और इसे फिर से लॉन्च करें। मुझे फ़ाइलों के समूह में विस्तार जोड़ने की आवश्यकता है। इसलिए शेयर में मेरी कार्रवाई इस तरह था: 'mv" $ फ़ाइल "" $ {फ़ाइल} .jpeg "' –

0
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done 

संपादित करें: पूरी तरह से पुनः लिखा गया।

+0

यह मेरे इनपुट के लिए पूछता रहता है ... पर बड़ा वापसी है –

+0

'> > > > > > >' –

+0

यदि यह तुम क्या चाहते है, को दूर - मैं –

0
for i in *; 
do j=`echo $i | cut -d . -f 1`; 
j=$j".mov"; 
mv $i $j; 
done 

यह पहली डॉट से पहले सब कुछ कटौती करने और .mov संलग्न कर देता है

लेकिन अगर कुछ फ़ाइलों जैसे हैं जाएगा hi.2.mov और hi.1.mov एक ओवरराइट किया जाएगा, इसलिए का उपयोग इसे ध्यान से ^^

33

मैं सिर्फ सफलतापूर्वक स्वचालक (पहली बार मैं परेशान किया है) का इस्तेमाल किया, और यह वास्तव में अच्छी तरह से काम करता है। मैंने स्वचालन को एक सेवा के रूप में बचाया। कुछ आसानी से पुन: प्रयोज्य बनाने में लगभग 10 सेकंड लग गए:

  1. ओपन ऑटोमेटर।
  2. दस्तावेज़ के प्रकार के रूप में, "सेवा" चुनें।
  3. बदलें सेवा "टेक्स्ट" को "फाइलें और फ़ोल्डर्स" में प्राप्त करती है।
  4. केवल खोजक को "कोई भी एप्लिकेशन" बदलने पर विचार करें।
  5. साइडबार से, "फ़ाइलें & फ़ोल्डर" (लाइब्रेरी के तहत) और सूचीबद्ध कॉलम से, केंद्र कॉलम में, "दाईं ओर खोजकर्ता आइटम का नाम बदलें" को खींचें और इसे "ड्रैग क्रियाएं या फ़ाइलों को यहां खींचें" आपका वर्कफ़्लो। "
  6. "अनुक्रमिक बनाएं" में "तिथि या समय जोड़ें" से जो क्रिया आपने अभी जोड़ा है उसे बदलें।
  7. कार्रवाई के निचले हिस्से में "विकल्प" पर क्लिक करें और "वर्कफ़्लो चलाते समय यह क्रिया दिखाएं" विकल्प को चेक करें।
  8. सेवा को बचाने के लिए "सीएमडी + एस" दबाएं जैसे "पाठ बदलें" ..
  9. हो गया!

अब आप किसी भी चयन खोजक में राइट क्लिक कर सकते, सेवा मेनू में जाएँ और चुनें "पाठ बदलें", कैसे आप पाठ बदल गया है या बदल दिया चाहते में भर - और क्लिक "जारी रखें" कॉन्फ़िगर किया गया परिवर्तनों को लागू करने।

+0

धन्यवाद! उपरोक्त विधि किसी कारण से काम नहीं करती है। – Norris

+0

यह कहां या कहाँ या कब विफल हुआ? कोई त्रुटि संदेश बिल्कुल नहीं? – Johan

+0

मैंने इसे घटा दिया क्योंकि प्रश्न में "टर्मिनल" टैग है। – v42

10

आपरेशन प्रिंट परीक्षण करने के लिए: यह काम

for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";echo mv \"$file\" \"$j\"; done 

बनाने के लिए:

for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";mv "$file" "$j"; done 
+1

परीक्षण प्रिंट विकल्प ने मेरा अप वोट जीता। धन्यवाद! –

+0

ये काम किया! धन्यवाद। –

+0

एक लाइन समाधान – semihcosu

1
for i in `ls *png`;do echo mv $i "${i%%.*}"@xx."${i##*.}";done 
11
for n in *.MP4.mov 
do 
    mv $n $(echo $n | sed -e 's/.MP4//') 
done 

यह भी वास्तव में वर्ष के गोले उस पैरामीटर प्रतिस्थापन की जरूरत नहीं है पर काम करेंगे , और यह कम से कम मेरी आंखों के लिए एक और अधिक पठनीय है।

+0

के लिए धन्यवाद मैंने इसे उन फ़ाइलों पर लागू किया है जो उनके नाम पर '_MG_' का उपयोग करते हैं जिन्हें मुझे' * 'और' * 'के बीच संशोधित करके पूरी तरह से' -IMG_' में बदलने की आवश्यकता होती है। एक आकर्षण काम किया। धन्यवाद! –

4

पर मैक OSX आप Homebrew के माध्यम से rename आदेश स्थापित कर सकते हैं: brew install rename

तो फिर तुम खोज का उपयोग कर नाम बदल सकते हैं/कमांड लाइन पर उस फ़ोल्डर से बदल देते हैं:

rename 's/\.MP4\././' * 

आप यह भी देख सकते हैं और अधिक विकल्प man rename का उपयोग कर।

1

vimv आप विम के पाठ संपादन क्षमताओं का उपयोग कर कई फ़ाइलों का नाम देता है।

में प्रवेश कर vimv एक विम खिड़की जो नीचे सूचीबद्ध करता है सभी फाइलों को खोलता है और आप पैटर्न मिलान, दृश्य का चयन करें, आदि कर सकते हैं नामों को संपादित करने। विम से बाहर निकलने के बाद, फ़ाइलों का नाम बदल दिया जाएगा।

[अस्वीकरण: मैं उपकरण का लेखक हूं]

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