সেডের সাথে স্ল্যাশযুক্ত স্ট্রিংয়ের সাথে একটি স্ট্রিং কীভাবে প্রতিস্থাপন করবেন?


13

আমি একটি ফাইলের স্ট্রিংয়ের সাথে একটি স্ট্রিং প্রতিস্থাপন করার উপায় খুঁজছি যা সেড ব্যবহার করে একটি স্ল্যাশ ধারণ করে।

connect="192.168.100.61/foo"
srcText="foo.bar=XPLACEHOLDERX"
echo $srcText | sed "s/XPLACEHOLDERX/$connect"

ফলাফল হলো:

sed: -e Expression #1, Character 32: Unknown option for `s'

উত্তর:


31

sকমান্ডটিতে ডিলিমিটার হিসাবে অন্য একটি অক্ষর ব্যবহার করুন :

printf '%s\n' "$srcText" | sed "s|XPLACEHOLDERX|$connect|"

অথবা ksh93 এর সঙ্গে স্ল্যাশ অব্যাহতি ${var//pattern/replacement}প্যারামিটার সম্প্রসারণ অপারেটর (এখন দ্বারা সমর্থিত zsh, bash, mksh, yashএবং busybox- র সাম্প্রতিক সংস্করণটি sh)।

printf '%s\n' "$srcText" | sed "s/XPLACEHOLDERX/${connect//\//\\/}/"

দ্বিতীয় উপায়ের জন্য +1। প্রথমটি নিখরচায় কাজ করে না।
ইব্রাহিম

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.