जब /
किसी रेगुलर एक्सप्रेशन का हिस्सा है कि आप sed
की s
(विकल्प) कमांड के साथ बदलना चाहते है, तो आप एक अन्य चरित्र का उपयोग करने के बजाय कर सकते हैं आदेश के वाक्य रचना में स्लेश, तो आप लिखते हैं, उदाहरण के लिए:
sed 's,/,\\\\,g'
,
ऊपर अमूमन के बजाय इस्तेमाल किया गया था s
कमांड के दो पैरामीटर को डिलीमिट करने के लिए अल स्लैश: भाग को प्रतिस्थापित करने के लिए नियमित अभिव्यक्ति और स्ट्रिंग को प्रतिस्थापन के रूप में उपयोग करने के लिए वर्णित किया गया है।
उपर्युक्त दो स्लैश के साथ प्रत्येक स्लैश को प्रतिस्थापित करेगा। बैकस्लैश एक विशेष (उद्धरण) चरित्र है, इसलिए इसे उद्धृत किया जाना चाहिए, यहां इसे स्वयं उद्धृत किया गया है, यही कारण है कि हमें दो बैकस्लेश का प्रतिनिधित्व करने के लिए 4 बैकस्लाश की आवश्यकता है।
$ echo /etc/passwd| sed 's,/,\\\\,g'
\\etc\\passwd
अच्छा लगा। मुझे तब तक एहसास नहीं हुआ जब तक मैंने देखा कि प्रतिस्थापन की शुरुआत में दूसरा फॉरवर्ड स्लैश जोड़ने से यह वैश्विक बन जाता है। बहुत उपयोगी! –
busybox ash (BusyBox v1.21.1, v1.22.1) में '/' प्रतिस्थापन $ a = abc/abc/abc $ echo $ {// // c/_} ab_/ab_/ab_ $ echo $ {a // \ // _} एबीसी/एबीसी/एबीसी – yurenchen