नाम बदलें - "s //" बनाम "y //" का क्या अर्थ है?


9

आदमी पेज दो उदाहरण देता है:

rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *

तो यह या तो एस या वाई है और फिर /replaceThis/withThis

अग्रणी s और y का क्या अर्थ है? क्या अन्य विकल्प हैं?

जवाबों:


12

पहले मामले में:

rename 's/\.bak$//' *.bak

आप फ़ाइल नाम के विरुद्ध एक नियमित अभिव्यक्ति चला रहे हैं और दूसरी अभिव्यक्ति (जो खाली है) के साथ अभिव्यक्तियों के मिलान भाग (एक फ़ाइल नाम के अंत में) को प्रतिस्थापित कर रहे हैं।

दूसरे मामले में:

rename 'y/A-Z/a-z/' *

आप नियमित अभिव्यक्ति पैटर्न स्थान के विरुद्ध मिलान कर रहे हैं और लक्ष्य के लिए अनुवाद कर रहे हैं। दूसरे शब्दों में, सीमा AZ को श्रेणी az में बदल दिया जाता है, जिससे फ़ाइल नाम कम होता है।

मेरा सुझाव है कि आप अधिक कमांड और अधिक विवरण के लिए sed के लिए मैन पेज देखें। मेरा मानना ​​है कि 's' कमांड का प्रयोग सबसे अधिक किया जाता है। साथ ही, रेगेक्स (धारा 7) और पर्ल डॉक्यूमेंट भी मदद के हो सकते हैं। विशेष रूप से, यहाँ एक ट्यूटोरियल है पर्ल और रेगुलर एक्सप्रेशन।


से man sed:

एस / regexp / प्रतिस्थापन /    
       पैटर्न स्पेस के खिलाफ regexp से मिलान करने का प्रयास करें। अगर सफलता
       ful, उस हिस्से को प्रतिस्थापन के साथ मिलान करता है। 
       प्रतिस्थापन में विशेष वर्ण और उसका उल्लेख हो सकता है
       पैटर्न स्पेस का हिस्सा जो मेल खाता है, और विशेष
       इसी मिलान का उल्लेख करने के लिए \ 9 के माध्यम से बचता है
       regexp में उप-अभिव्यक्तियाँ।

y / स्रोत / गंतव्य /  
       पैटर्न स्पेस में वर्णों का अनुवाद करें जो दिखाई देते हैं
       भाग्य में संबंधित चरित्र के स्रोत में।

बहुत बहुत धन्यवाद - मुझे यकीन नहीं है कि लोगों को 'सेड' की ओर इशारा करना सबसे अच्छा विचार है, इसके कार्यान्वयन की भीड़ को देखते हुए, विशेष रूप से किसी भी दिए गए लिनक्स डिस्ट्रो और OSX के बीच
aaaaaa

@aaaaaa यह साइट विशेष रूप से उबंटू के बारे में है।
वेजेंड्रिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.