Ruby:
CLI वन-लाइनर्स के साथ फाइलों में स्थल पर संपादन
कैसे करें:
रूबी कमांड लाइन से ही स्थान पर फाइलों को संपादित करने का एक सरल तरीका प्रदान करती है। रूबी के -i
स्विच का उपयोग करके, आप रूबी को सीधे प्रदान की गई फाइल(स) पर काम करने के लिए कह सकते हैं। चलिए कुछ उदाहरणों के साथ खेलते हैं यह वास्तविक जीवन में कैसे काम करता है देखते हैं। कल्पना कीजिए आपके पास greetings.txt
नामक फाइल है जिसमें निम्नलिखित सामग्री है:
Hello, world!
Hello, Ruby!
Hello, programming!
और आप “Hello” शब्द को “Hi” से बदलना चाहते हैं। ऐसे में आप इसे कैसे कर सकते हैं:
ruby -i -pe "gsub(/Hello/, 'Hi')" greetings.txt
इस कमांड को चलाने के बाद, greetings.txt
अपडेट होकर हो जाएगा:
Hi, world!
Hi, Ruby!
Hi, programming!
अगर आपको डेटा को गलती से बिगाड़ने की चिंता है, तो रूबी ने आपकी कवर किया हुआ है। -i
स्विच को एक्सटेंशन प्रदान करके, रूबी परिवर्तनों को निष्पादित करने से पहले एक बैकअप बनाती है। उदाहरण के तौर पर:
ruby -i.bak -pe "gsub(/Hello/, 'Bye')" greetings.txt
अब, आपके संपादित greetings.txt
के साथ, आपको समान निर्देशिका में एक greetings.txt.bak
मिलेगी, जिसमें मूल सामग्री रखी गई है।
गहन अन्वेषण
रूबी में स्थान पर फाइल संपादन की जादूगरी इसकी पर्ल-जैसी टेक्स्ट प्रोसेसिंग क्षमताओं और रूबी की अपनी सिंटैक्टिक शालीनता के संयोजन से आती है। ऐतिहासिक रूप से, पर्ल टेक्स्ट मैनिपुलेशन के लिए, खासकर त्वरित वन-लाइनर स्क्रिप्टिंग के लिए, जाने-जाते भाषा थी। रूबी ने यह पैराडाइम अपनाया, कमांड लाइन स्क्रिप्टिंग क्षमताओं के लिए शक्तिशाली समर्थन प्रदान करते हुए।
स्थान पर संपादन के लिए अन्य भाषाओं में विकल्प मौजूद हैं, जैसे कि पर्ल स्वयं और सेड, जो एक स्ट्रीम एडिटर है यूनिक्स सिस्टम्स में। प्रत्येक में इसकी ताकतें हैं—पर्ल को इसकी टेक्स्ट प्रोसेसिंग क्षमता के लिए जाना जाता है जबकि सेड इसकी सादगी के लिए अद्वितीय है, जो स्ट्रीम संपादन कार्यों के लिए है। हालांकि, रूबी एक संतुलन प्रदान करती है, रूबी के साथ परिचित लोगों के लिए एक अधिक पठनीय और उपयोगकर्ता-मित्रवत सिंटैक्स के साथ मजबूत टेक्स्ट मैनिपुलेशन प्रदान करती है।
कार्यान्वयन मोर्चे पर, रूबी की स्थान पर संपादन मूल फाइल को नाम बदलकर, मूल फाइलनेम के साथ एक नई फाइल बनाकर, और फिर नाम बदली गई मूल से पढ़ते हुए इस नई फाइल में परिवर्तन लिखकर काम करती है। यह दृष्टिकोण संचालन की परमाणुता को सुनिश्चित करता है; या तो पूरी फाइल सफलतापूर्वक प्रोसेस होती है, या कोई परिवर्तन नहीं किया जाता है, संपादन की प्रक्रिया के दौरान आपके डेटा की अखंडता की रक्षा करता है। यह तंत्र, रूबी की अपवाद हैंडलिंग के साथ संयुक्त होकर, विघ्नों, जैसे कि विद्युत विफलता या प्रक्रिया की हत्या के खिलाफ पुनर्जीवन प्रदान करता है, सुनिश्चित करता है कि कम से कम बैकअप सुरक्षित रहे।
संक्षेप में, रूबी की स्थान पर फाइल संपादन स्क्रिप्टिंग भाषा के रूप में इसकी उपयोगिता का प्रतिफल है, कमांड लाइन से सीधे टेक्स्ट मैनिपुलेशन कार्यों के लिए शक्ति, सादगी, और शालीनता का मिश्रण प्रदान करता है।