जवाबों:
यह एक विभाजक है, जैसा है "/"
, यह वैसा ही है 's/abc/zzz/g'
।
इसका मतलब है कि "एबीसी" के लिए इसे "ज़ज़" के साथ बदलें, वैश्विक ध्वज के साथ, इसका मतलब है कि यह लाइन पर सभी "एबीसी" के लिए है, न कि केवल पहले एक पर।
आप पैटर्न पते के लिए एक वैकल्पिक विभाजक का उपयोग भी कर सकते हैं, लेकिन उस स्थिति में, आपको इसकी सही व्याख्या करने के लिए इससे बचने की आवश्यकता है:
sed -r '\#abc#p'
यह एक सीमांकक या विभाजक है। सबसे अधिक इस्तेमाल किया जाने वाला एक /
जैसा है
sed 's/old/new/' file
लेकिन सीम कमांडर (सी) के बाद पहला चरित्र सीमांकक के रूप में ले जाएगा। आप किसी भी सुविधाजनक चरित्र का उपयोग कर सकते हैं, उदाहरण के लिए ...
sed 's%old%new%' file
यह बहुत उपयोगी है यदि फ़ाइल में /
(या अन्य पारंपरिक परिसीमन वर्ण) हों। आप विभाजक के रूप में कुछ चरित्र चुन सकते हैं जिन्हें आप जानते हैं कि आपको अपनी sed
अभिव्यक्ति में डालने की आवश्यकता नहीं होगी , जिससे आपको बहुत कष्टप्रद भागने से बचाना होगा।
मान लीजिए कि आप प्रतिस्थापित करना चाहते हैं
https://askubuntu.com/questions
साथ में
https://askubuntu.com/posts
आप उपयोग कर सकते हैं
sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file
लेकिन उपयोग करने के लिए बेहतर है
sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
sbabeb
के रूप में ही करता है s/a/e/
।
/
की तुलना में अन्य संदर्भों में एक वैकल्पिक चरित्र द्वारा बदला जा सकता हैs
(विकल्प) आदेश - लेकिन इस मामले में यह पहली बार है जैसे भाग निकले किए जाने की आवश्यकताsed '/foo/d'
(मिलान हटाने लाइनोंfoo
) हो जाता हैsed '\#foo#d'