यदि आप किसी कीवर्ड को स्ट्रिंग का उपयोग करके सीड के साथ बदलना चाहते हैं, तो सीड आपके प्रतिस्थापन स्ट्रिंग की व्याख्या करने के लिए कड़ी मेहनत करता है। यदि प्रतिस्थापन स्ट्रिंग में ऐसे अक्षर होते हैं, जो sed विशेष मानता है, जैसे '/' वर्ण, तो यह विफल हो जाएगा, जब तक कि आप का अर्थ यह नहीं है कि आपके प्रतिस्थापन स्ट्रिंग में ऐसे वर्ण हैं जो sed को बताते हैं कि कैसे कार्य करना है।
उदाहरण के लिए:
VAR="hi/"
sed "s/KEYWORD/$VAR/g" somefile
क्या कोई ऐसा तरीका है जो विशेष वर्णों के लिए प्रतिस्थापन स्ट्रिंग की व्याख्या करने की कोशिश नहीं करने के लिए sed को बताता है? मैं बस यही चाहता हूं कि किसी वैरिएबल की सामग्री के साथ फाइल में एक कीवर्ड को बदलने में सक्षम हो, चाहे वह कोई भी सामग्री हो।
sed(1)
बस यह क्या हो जाता है की व्याख्या करता है। आपके मामले में, यह एक शेल प्रक्षेप के माध्यम से हो जाता है। मेरा मानना है कि आप जैसा चाहें वैसा नहीं कर सकते हैं, लेकिन मैनुअल की जांच करें। मैं पर्ल में जानता हूं (जो एक sed
बहुत ही नियमित नियमित अभिव्यक्ति के साथ एक निष्क्रिय प्रतिस्थापन करता है ) आप निर्दिष्ट कर सकते हैं एक स्ट्रिंग को शाब्दिक रूप से लिया जाना है, फिर से, मैनुअल की जांच करें।
sed
और उनके लिए विशेष नहीं हैं, तो बस बैकस्लैश उनसे बच जाते हैं।VAR='hi\/'
ऐसी कोई समस्या नहीं देता है।