युक्त तारों को खोज और प्रतिस्थापित करें मुझे sed
का उपयोग करने के लिए वर्ण वाली टेक्स्ट को /etc/myconfig
में स्ट्रिंग्स को खोजने और बदलने के लिए समस्या का पता लग रहा है।sed/
उदाहरण के लिए, अपने मौजूदा पाठ फ़ाइल में, मेरे पास है:
myparam /path/to/a argB=/path/to/B xo
और मैं इस के द्वारा बदल दिया हैं:
myparam /path/to/c argB=/path/to/D xo
मैं पार्टी में ऐसा करने का प्रयास किया:
line='myparam /path/to/a argB=/path/to/B xo'
line_new='myparam /path/to/c argB=/path/to/D xo'
sed -i 's/$line/$line_new/g' /etc/myconfig
लेकिन कुछ भी नहीं होता है।
का प्रयास
grep -rn "$line" /etc/myconfig
मुझे 'myparam /path/to/a argB=/path/to/B xo'
लौट हालांकि करता है।
इस खोज को निष्पादित करने के लिए मेरे sed
कमांड को व्यक्त करने और /
कमांड के साथ सही तरीके से निपटने का सही तरीका क्या है? (मुझे लगता है कि मेरी तार में /
चरित्र वाले मुझे समस्या दे रहे हैं क्योंकि मैं खोज और कोई समस्या नहीं के साथ पाठ फ़ाइल में एक और लाइन को बदलने के लिए एक समान sed
आदेश का इस्तेमाल किया और उस पंक्ति एक /
चरित्र नहीं है लगता है।
प्रतिस्थापन और उद्धरण नियम वास्तव में विशेष रूप से sed की बजाय बाश के बारे में हैं। आप एक टैग के रूप में bash जोड़ना चाह सकते हैं। – KarlM
ठीक है। टैग के रूप में 'bash' जोड़ देगा। –