कोई कांटा नहीं:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
जब आप शेल लूप का उपयोग करते हैं, तो mvफ़ाइल के अनुसार एक बार कांटे। पर्ल की renameआज्ञा नहीं है।
(पर्ल के नाम बदलने के आदेश में कुछ प्रतिबंध हैं, लेकिन इस विशिष्ट मामले में वे प्रतिबंध लागू नहीं होते हैं।)
जैसा renameकि पहले दिखाया गया कमांड के लिए , हां जो काम करता है, लेकिन फिर आपके पास दो अलग-अलग प्रकार के नाम बदलने और इसी तरह की उलझन है। यदि आपके पास सही है, महान है, लेकिन यदि नहीं, तो यह भी काम करता है।
यदि आपके पास perl-rename कमांड नहीं है और इसे स्थापित नहीं कर सकते हैं, तो आप यह कर सकते हैं:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
जैसा कि आप देख सकते हैं, यह शीर्ष उत्तर में दिखाए गए समान प्रतिस्थापन का उपयोग करता है। बेशक पर्ल नाम बदलने अन्य घंटियां और सीटियां (ऊपर जवाब उल्लेख किया है, है -nपहले से ही है, तो वहाँ -0, -f, और इतने पर), और उनमें से अधिक आप की जरूरत है, और अधिक आपको लगता है कि अपनी खुद की इस तरह से स्थापित करना चाहिए बजाय रोलिंग ।
rename। मुझे लगता है कि यह लैरी वॉल का हैrename,renameडेबियन में पैकेज और व्युत्पन्न (औरprenameरेडहैट अनुनय की प्रणालियों पर IIRC )। एक बहुत ही उपयोगी उपकरण।