W8 L1 Operating system Security
विषयसूची:
पाठ फ़ाइलों के साथ काम करते समय अक्सर आपको एक या अधिक फ़ाइलों में पाठ के तार खोजने और बदलने की आवश्यकता होगी।
sed
एक s tream एड इटोर है। यह पाइपलाइनों जैसी फाइलों और इनपुट धाराओं पर बुनियादी पाठ हेरफेर कर सकता है।
sed
साथ, आप शब्दों और लाइनों को खोज, ढूंढ और बदल सकते हैं, सम्मिलित कर सकते हैं और हटा सकते हैं। यह बुनियादी और विस्तारित नियमित अभिव्यक्तियों का समर्थन करता है जो आपको जटिल पैटर्न से मेल खाने की अनुमति देता है।
, हम इस बारे में बात करेंगे कि कैसे स्ट्रिंग के साथ स्ट्रिंग्स को ढूंढें और प्रतिस्थापित करें। हम आपको यह भी बताएंगे कि एक पुनरावर्ती खोज और प्रतिस्थापन कैसे करें।
ढूँढें और स्ट्रिंग के साथ स्ट्रिंग बदलें
उनके बीच कुछ कार्यात्मक मतभेदों के साथ,
sed
कई संस्करण हैं। macOS बीएसडी संस्करण का उपयोग करता है और अधिकांश लिनक्स वितरण डिफ़ॉल्ट रूप से जीएनयू
sed
साथ आते हैं। हम GNU संस्करण का उपयोग करेंगे।
sed
का उपयोग करके पाठ को खोजने और बदलने का सामान्य रूप निम्न रूप लेता है:
sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
-
-i
- डिफ़ॉल्ट रूप से, मानक आउटपुट में अपना आउटपुट लिखता है। यह विकल्प फ़ाइलों को जगह में संपादित करने के लिएsed
बताता है। यदि कोई एक्सटेंशन दिया गया है (ex -i.bak) तो मूल फ़ाइल का बैकअप बन जाएगा।s
- स्थानापन्न कमांड, शायद sed में सबसे अधिक इस्तेमाल किया जाने वाला कमांड है।/ / /
- Delimiter चरित्र। यह कोई भी वर्ण हो सकता है लेकिन आमतौर पर स्लैश (/
) वर्ण का उपयोग किया जाता है।SEARCH_REGEX
- सामान्य स्ट्रिंग या खोज करने के लिए एक नियमित अभिव्यक्ति।REPLACEMENT
- प्रतिस्थापन स्ट्रिंग।g
- वैश्विक प्रतिस्थापन ध्वज। डिफ़ॉल्ट रूप से,sed
फ़ाइल लाइन द्वारा लाइन को पढ़ता है और एक लाइन परSEARCH_REGEX
की पहली घटना कोSEARCH_REGEX
। जब प्रतिस्थापन ध्वज प्रदान किया जाता है, तो सभी घटनाओं को प्रतिस्थापित किया जाएगा।INPUTFILE
- उस फ़ाइल का नाम जिस पर आप कमांड चलाना चाहते हैं।
यह तर्क के आसपास उद्धरणों को रखने के लिए एक अच्छा अभ्यास है इसलिए शेल मेटा-वर्णों का विस्तार नहीं होगा।
आइए देखें कि अपने कुछ सबसे अधिक उपयोग किए जाने वाले विकल्पों और झंडे के साथ फ़ाइलों में पाठ को खोजने और बदलने के लिए
sed
कमांड का उपयोग कैसे करें।
प्रदर्शन उद्देश्यों के लिए, हम निम्नलिखित फ़ाइल का उपयोग करेंगे:
file.txt
123 Foo foo foo foo /bin/bash Ubuntu foobar 456
sed -i 's/foo/linux/' file.txt
123 Foo linux foo linux /bin/bash Ubuntu foobar 456
ग्लोबल रिप्लेसमेंट फ्लैग
sed
के साथ खोज पैटर्न की सभी घटनाएं होती हैं:
sed -i 's/foo/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu linuxbar 456
जैसा कि आपने देखा होगा, पिछले उदाहरण में
foobar
स्ट्रिंग के अंदर सबसिंग
foo
को भी बदल दिया गया है। यदि यह वांछित व्यवहार नहीं है, तो खोज स्ट्रिंग के दोनों सिरों पर शब्द-सीमा अभिव्यक्ति (
\b
) का उपयोग करें। यह सुनिश्चित करता है कि आंशिक शब्द मेल नहीं खाते हैं।
sed -i 's/\bfoo\b/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu foobar 456
पैटर्न मैच केस को असंवेदनशील बनाने के लिए,
I
ध्वज का उपयोग करें। नीचे दिए गए उदाहरण में हम
g
और
I
दोनों झंडे का उपयोग कर रहे हैं:
sed -i 's/foo/linux/gI' file.txt
123 linux linux linux linux /bin/bash Ubuntu linuxbar 456
sed -i 's/\/bin\/bash/\/usr\/bin\/zsh/g' file.txt
आसान और अधिक पठनीय विकल्प एक और सीमांकक चरित्र का उपयोग करना है। अधिकांश लोग वर्टिकल बार (
|
) या कोलन (:) का उपयोग करते हैं, लेकिन आप किसी अन्य वर्ण का उपयोग कर सकते हैं:
sed -i 's|/bin/bash|/usr/bin/zsh|g' file.txt
123 Foo foo foo foo /usr/bin/zsh Ubuntu foobar 456
आप नियमित अभिव्यक्तियों का भी उपयोग कर सकते हैं। उदाहरण के लिए सभी 3 अंकों की संख्या की खोज करें और उन्हें आपके द्वारा उपयोग किए जाने वाले स्ट्रिंग
number
प्रतिस्थापित करें:
sed -i 's/\b\{3}\b/number/g' file.txt
number Foo foo foo foo /bin/bash demo foobar number
सेड की एक अन्य उपयोगी विशेषता यह है कि आप एम्परसेंड चरित्र का उपयोग कर सकते हैं
&
जो मिलान किए गए पैटर्न से मेल खाता है। चरित्र का उपयोग कई बार किया जा सकता है।
उदाहरण के लिए, यदि आप प्रत्येक 3 अंकों की संख्या के आसपास घुंघराले ब्रेसिज़ जोड़ना चाहते हैं, तो टाइप करें:
sed -i 's/\b\{3}\b/{&}/g' file.txt
{123} Foo foo foo foo /bin/bash demo foobar {456}
अंतिम लेकिन कम से कम, फ़ाइल को
sed
साथ संपादित करते समय बैकअप बनाना हमेशा एक अच्छा विचार है। ऐसा करने के लिए बस
-i
विकल्प को एक एक्सटेंशन प्रदान करें। उदाहरण के लिए,
file.txt
को संपादित करने और मूल फ़ाइल को
file.txt.bak
रूप में सहेजने के लिए आप उपयोग करेंगे:
sed -i.bak 's/foo/linux/g' file.txt
ls
पुनरावर्ती ढूँढें और बदलें
कभी-कभी आप स्ट्रिंग युक्त फ़ाइलों के लिए निर्देशिकाओं को पुन: खोज करना चाहते हैं और सभी फ़ाइलों में स्ट्रिंग को प्रतिस्थापित करना चाहते हैं। यह निर्देशिका में फ़ाइलों को पुन: प्राप्त करने के लिए कमांड या
grep
जैसे कमांड का उपयोग करके किया जा सकता है और फ़ाइल नामों को
sed
करने के लिए पाइपिंग कर सकता है।
निम्न आदेश वर्तमान कार्यशील निर्देशिका में फ़ाइलों की खोज करेगा और फ़ाइल नामों को
sed
करने के लिए पास करेगा।
find. -type f -exec sed -i 's/foo/bar/g' {} +
उनके नाम में स्थान रखने वाली फ़ाइलों के साथ समस्या से बचने के लिए
-print0
विकल्प का उपयोग करें जो बताता है कि फ़ाइल नाम को प्रिंट करें, उसके बाद एक अशक्त वर्ण और पाइप को
xargs -0
का उपयोग करके आउटपुट को पाइप करें:
find. -type f -print0 | xargs -0 sed -i 's/foo/bar/g'
एक निर्देशिका को बाहर करने के लिए
-not -path
विकल्प का उपयोग करें। उदाहरण के लिए, यदि आप डॉट (
.
) के साथ शुरू होने वाली सभी फ़ाइलों को बाहर करने के लिए अपने स्थानीय गिट रेपो में एक स्ट्रिंग की जगह ले रहे हैं, तो उपयोग करें:
find. -type f -not -path '*/\.*' -print0 | xargs -0 sed -i 's/foo/bar/g'
find. -type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g'
एक अन्य विकल्प यह है कि
grep
कमांड का उपयोग खोज पैटर्न वाले सभी फ़ाइलों को पुन: प्राप्त करने के लिए करें और फिर फ़ाइल नाम को
sed
करने के लिए पाइप करें:
grep -rlZ 'foo'. | xargs -0 sed -i.bak 's/foo/bar/g'
निष्कर्ष
हालांकि यह जटिल और जटिल लग सकता है, सबसे पहले,
sed
साथ फाइलों में पाठ को खोजना और बदलना बहुत सरल है।
sed
कमांड के बारे में अधिक जानने के लिए, विकल्प और झंडे GNU sed मैनुअल और Grymoire sed ट्यूटोरियल पर जाएँ। यदि आपके कोई प्रश्न या प्रतिक्रिया है, तो टिप्पणी छोड़ने के लिए स्वतंत्र महसूस करें।
फ़ाइलों को जोड़ने, अपलोड करने, स्टोर करने, बनाने, फ़ाइलों को जोड़ने, अपलोड करने, स्टोर करने, बनाने, फ़ाइलों का उपयोग करने के लिए कैसे करें OneDrive

OneDrive का उपयोग कैसे करें? अपने विंडोज पीसी का उपयोग करके OneDrive में साझा फ़ोल्डरों को जोड़ने, अपलोड करने, स्टोर करने, बनाने, उपयोग करने और साझा फ़ोल्डरों को सिंक करने का तरीका जानें।
विंडोज़ में मास्टर बूट रिकॉर्ड (एमबीआर) को पुनर्स्थापित करें, ठीक करें, ठीक करें, मरम्मत करें, ठीक करें, पुनर्निर्माण या मरम्मत कैसे करें Bootrec.exe उपकरण का उपयोग कर विंडोज 10/8/7 में मास्टर बूट रिकॉर्ड या एमबीआर। कंप्यूटर में बूट समस्याएं होने में सहायक।

बूट समस्याओं को ठीक करने के लिए प्रभावी समस्या निवारण चरणों में से एक है
विंडोज में डुप्लिकेट फ़ाइलों को डुप्लिकेट फ़ाइलों को खोजने और हटाने के लिए कैसे करें

NoDupe के साथ विंडोज में डुप्लीकेट फाइल्स कैसे खोजें और डिलीट करें।