Fish Shell:
CLI वन-लाइनर्स के साथ फाइलों में स्थल पर संपादन
कैसे:
फिश शेल, जिसे इसकी उपयोगकर्ता-अनुकूल सुविधाओं और शक्तिशाली स्क्रिप्टिंग क्षमताओं के लिए जाना जाता है, फाइलों में स्थान पर ही संपादन के कई तरीके प्रदान करता है। हालाँकि, कुछ अन्य शेलों के विपरीत, फिश में स्थान पर ही संपादन के लिए एक निर्मित तंत्र नहीं है (sed -i बाश में, उदाहरण के लिए)। परन्तु चिंता न करें, आप अब भी थोड़ी सी रचनात्मकता और sed और awk जैसे बाहरी उपकरणों की कुछ मदद से इसे प्राप्त कर सकते हैं।
सरल प्रतिस्थापनों के लिए sed का उपयोग करना
file.txt में “hello” के सभी उदाहरणों को “world” से बदलने के लिए, आप इसका उपयोग करेंगे:
sed -i '' 's/hello/world/g' file.txtएकाधिक sed आदेशों का लागू करना
यदि आपको कई प्रतिस्थापन करने हों, तो आप उन्हें इस प्रकार श्रृंखला में जोड़ सकते हैं:
sed -i '' -e 's/fish/bass/g' -e 's/rainbow/trout/g' file.txtअधिक जटिल कार्यों के लिए awk का उपयोग करना
sed के लिए बहुत जटिल कार्यों के लिए, awk आपकी पसंद का उपकरण हो सकता है। यहाँ प्रत्येक पंक्ति पर संख्या को दोगुना करने का तरीका है:
awk '{print $1 * 2}' file.txt > temp और mv temp file.txtत्रुटि संभाल पर ध्यान देना
याद रखें, जब आप फिश से इन उपकरणों का उपयोग करते हैं, तो त्रुटियों को पकड़ना और उनके संदेशों को समझना आवश्यक है। अपनी स्क्रिप्ट्स को अधिक विश्वसनीय बनाने के लिए फिश की मजबूत त्रुटि संभाल का उपयोग करें।
गहराई में जाना
ऐतिहासिक रूप से, फाइलों में स्थान पर ही संपादन, यूनिक्स और लिनक्स प्रोग्रामिंग का एक मुख्य भाग रहा है, जो बिना मैन्युअल रूप से फाइलों को खोले, त्वरित संपादन करने का एक कुशल तरीका प्रदान करता है। sed और awk जैसे उपकरण यूनिक्स के प्रारंभिक दिनों से ही टेक्स्ट प्रोसेसिंग कार्यों के लिए अपरिहार्य उपयोगिताएँ बन गए हैं।
फिश शेल, जो अधिक आधुनिक है और उपयोगिता और स्क्रिप्टिंग में सुधारों की डींग मारता है, मुख्य रूप से इसकी डिज़ाइन दर्शन पर ध्यान केंद्रित करने के कारण, स्थान पर ही संपादन में निर्मित सुविधा के बिना है, जो इंटरएक्टिविटी और उपयोगकर्ता-अनुकूलता पर केंद्रित है। फिश में स्थान पर ही संपादन कमांड की अनुपस्थिति, यूनिक्स जैसे इकोसिस्टम्स में बाहरी उपकरणों के महत्व को रेखांकित करती है।
फिश में स्थान पर ही संपादन के विकल्पों में अस्थायी फाइलों का उपयोग करना या पर्ल या पायथन वन-लाइनर्स का लाभ उठाना शामिल है, जो जटिल कार्यों के लिए अधिक लचीलापन या पठनीयता प्रदान कर सकता है।
उदाहरण के लिए, पर्ल का उपयोग करते हुए:
perl -pi -e 's/find/replace/g' file.txtया पायथन:
python -c "import re, sys; [sys.stdout.write(re.sub('pattern', 'replacement', line)) for line in sys.stdin]" < file.txt > temp और mv temp file.txtक्रियान्वयन की दृष्टि से, जब आप स्थान पर ही संपादन करते हैं, इन उपकरणों ने आम तौर पर एक अस्थायी फाइल बनाई, वहाँ परिवर्तन लिखे, और फिर मूल फाइल को संशोधित संस्करण से बदल दिया। यह दृष्टिकोण सुनिश्चित करता है कि यदि संचालन के दौरान कोई त्रुटि होती है, तो फाइल संपादन प्रक्रिया डेटा को भ्रष्ट या खो नहीं करती है।
इन उपकरणों और विधियों को समझने से फिश शेल प्रोग्रामर्स को अपनी स्क्रिप्ट्स में स्थान पर ही संपादन को प्रभावी ढंग से शामिल करने की अनुमति मिलती है, फिश की उपयोगकर्ता-अनुकूल सुविधाओं और पारंपरिक यूनिक्स टेक्स्ट प्रोसेसिंग उपयोगिताओं की कच्ची शक्ति के बीच की खाई को पाटने में।