উত্তর:
sed -i 's|'$fileWithPath'|HAHA|g' file
একক উদ্ধৃতি একটি স্ট্রিং আক্ষরিক সংজ্ঞা দেয়। আক্ষরিক বাহিরের বাইরে চলকটি শেলটিকে সেই অংশটি প্রসারিত করতে দেয়।
এছাড়াও: আপনি যদি পথগুলি বিশ্লেষণ করতে চলেছেন তবে সেড কমান্ডে একটি ডিলিমিটার ব্যবহার করুন যা ডিরেক্টরি ডিলিমিটার "/" সাথে বিভ্রান্ত হয় না।
sed -i 's|auth-user-pass nordvpn.txt|auth-user-pass /etc/openvpn/nordvpn.txt|g' *.ovpn
কাজ করে বলে মনে হচ্ছে।
রিপ্লেসমেন্ট স্ট্রিং বা প্যাটার্ন স্ট্রিংয়ে স্ল্যাশ রয়েছে এমন পরিস্থিতিতে আপনি GNU সেড বিকল্প বিকল্প কমান্ডের জন্য একটি বিকল্প ডিলিমেটারকে মঞ্জুরি দেয় তা ব্যবহার করতে পারেন। ডিলিমিটারের জন্য সাধারণ পছন্দগুলি হ'ল পাইপ চরিত্র | বা হ্যাশ # - সীমিত চরিত্রের সেরা পছন্দটি প্রায়শই প্রক্রিয়াধীন ফাইলের ধরণের উপর নির্ভর করে। আপনার ক্ষেত্রে আপনি চেষ্টা করতে পারেন
sed -i 's#'$fileWithPath'#HAHA#g' $file
শেষ # এর পরে 'g' অক্ষরটি ফাইলের সমস্ত উপস্থিতি পরিবর্তন করতে ব্যবহৃত হয় যদি আপনাকে কেবল প্রথম উপস্থিতি পরিবর্তন করতে হয় তবে 'জি' মুছে ফেলুন।
ফরোয়ার্ড স্ল্যাশ সহ আক্ষরিক স্ট্রিংয়ের জন্য আরও ভাল উপায়:
sed -i "s|my/path|my/other/path|g" myFileOfPaths.txt
$fileWithPath
সাদা স্থান থাকে তবে ভুল প্যাটার্নটি .োকানো হয়েছে।