यह सभी प्रकार के अव्यावहारिक है - अन्य उत्तर बहुत तेज़ और छोटे हैं - लेकिन ...
आप PowerShell का उपयोग कर सकते हैं! माइक्रोसॉफ्ट ने हाल ही में इसे ओपन-सोर्स किया और इसे क्रॉस-प्लेटफॉर्म बनाया। अपने ओएस के लिए डाउनलोड और इंस्टॉलेशन निर्देशों के लिए, "पावरशेल प्राप्त करें" अनुभाग देखें ।
एक बार जब आप इसे स्थापित कर लेते हैं, तो आप इस संक्षिप्त स्क्रिप्ट का उपयोग कर सकते हैं:
Get-ChildItem -File '*]*.avi' | ForEach-Object {
Rename-Item $_ -NewName (($_.Name -Split ']')[0] + '.avi')
}
मूल रूप से, यह वर्तमान निर्देशिका में प्रत्येक ऑब्जेक्ट से गुजरता है जो एक फ़ाइल मिलान है *]*.avi
, ब्रैकेट से पहले का हिस्सा मिलता है, उस .avi
पर वापस जाता है, और नए नाम के रूप में असाइन करता है।
इसे सीधे बैश से चलाने के लिए, इस सेमी-गोल्फ वाले वन-लाइनर का उपयोग करें:
powershell -command $'gci -File \'*]*.avi\'|%{rename-item $_ -NewName (($_.Name -Split \']\')[0]+\'.avi\')}'
इस स्टैक ओवरफ्लो जवाब के सौजन्य से बचने वाले भाव ।
(विंडोज पर उबंटू में बैश में परीक्षण किया गया। पावरशेल के साथ ऐसा करने का शायद बहुत कम तरीका है, लेकिन मैं कुछ ऐसा दिखाना चाहता था जो उन लोगों के लिए समझ में आता है जो नियमित अभिव्यक्ति नहीं जानते हैं।)
krename
तो प्यारा है। इसमें सभी प्रकार के शक्तिशाली विकल्प हैं और आपको दिखाता है कि वास्तव में ऐसा करने से पहले यह क्या करने जा रहा है। आप इसका उपयोग उन पैटर्नों का परीक्षण करने के लिए भी कर सकते हैं जिन्हें आप बाद में उपयोग कर सकते हैं।