वरीय यूनिक्स तरीका यह है (। मैं समझ नहीं सकता कैसे साफ कोड है कि इसका जवाब पर एक टिप्पणी में स्वरूपण प्राप्त करने के लिए) (हाँ, ओएस एक्स पर आधारित है यूनिक्स) है:
ls | sed 's/^\(.*\)\.txt$/mv "\1.txt" "\1.md"/' | sh
for
साथ क्यों पाशन अगर ls
डिजाइन द्वारा फ़ाइल नाम की पूरी सूची के माध्यम से लूप? आपके पास पाइप हैं, उनका इस्तेमाल करें। आप न केवल आदेशों का उपयोग करके आउटपुट बना सकते हैं/संशोधित कर सकते हैं, बल्कि कमांड (दाएं, यह कमांड द्वारा बनाए गए कमांड हैं, जो यूनिक्स के आविष्कारकों में से एक ब्रायन कर्निघान है, जो यूनिक्स पर सबसे अधिक पसंद करता है), तो चलिए देखते हैं कि क्या ls
और sed
sh
के पाइप को हटाने के द्वारा पैदा करता है:
$ ls | sed 's/^\(.*\)\.txt$/mv "\1.txt" "\1.md"/'
mv "firstfile.txt" "firstfile.md"
mv "second file.txt" "second file.md"
$
आप देख सकते हैं, यह न केवल एक एक लाइनर, लेकिन एक पूरी स्क्रिप्ट है, जो इसके अलावा आउटपुट के रूप में एक और स्क्रिप्ट बनाकर काम करता है। तो आइए बस एक लाइनर स्क्रिप्ट द्वारा उत्पादित स्क्रिप्ट को sh
पर फ़ीड करें, जो ओएस एक्स के स्क्रिप्ट दुभाषिया है। बेशक यह रिक्त स्थान के साथ फ़ाइल नामों के लिए भी काम करता है।
Btw: हर बार जब आप टर्मिनल में कुछ लिखते हैं तो आप एक स्क्रिप्ट बनाने, भले ही वह एक यूनिक्स शेल में एक शब्द ls
या date
आदि सब कुछ चल रहा है की तरह साथ केवल एक ही आदेश है हमेशा एक स्क्रिप्ट/कार्यक्रम है, जो केवल कुछ ASCII- आधारित धारा है (इस मामले में एक डेटा स्ट्रीम के विपरीत एक निर्देश धारा)।
देखने के लिए वास्तविक आदेशों sh
द्वारा निष्पादित किया जा रहा है, बस जो खोल में उत्पादन डिबगिंग चालू हो जाती है sh
के बाद एक -x
विकल्प, जोड़ने के लिए, ताकि आप हर mv
आदेश वास्तविक बहस sed
संपादक स्क्रिप्ट द्वारा पारित के साथ निष्पादित किया जा रहा देखेंगे (हाँ, लिपि के अंदर एक और लिपि :-))।
हालांकि, यदि आपको जटिलता पसंद है, तो आप awk
का भी उपयोग कर सकते हैं और यदि आप केवल मूल कार्य करने के लिए अन्य प्रोग्राम इंस्टॉल करना चाहते हैं, तो ren
है। मैं उन लोगों को भी जानता हूं जो इस साधारण हर दिन के कार्य के लिए 50-लाइनें या perl
स्क्रिप्ट लिखना पसंद करेंगे।
शायद खोजक को फाइलों का नाम बदलने में आसान है, लेकिन यदि मैक से दूरस्थ रूप से कनेक्ट किया गया है (उदाहरण के लिए ssh
के माध्यम से), खोजक का उपयोग करना बिल्कुल संभव नहीं है। यही कारण है कि cmd लाइन अभी भी बहुत उपयोगी है।
हाँ ऐसा लगता है। धन्यवाद –
मैवरिक्स पर, यह मेरे लिए काम नहीं करता है, यह आउटपुट देता है: उपयोग: एमवी [-एफ | -ई | -एन] [-v] स्रोत लक्ष्य एमवी [-एफ | -ई | -एन] [-v] स्रोत ... निर्देशिका –
बस मैवरिक्स पर कोशिश की, और यह ठीक काम करता है। यह मानता है कि आप बैश, डिफ़ॉल्ट खोल का उपयोग कर रहे हैं। –