নেটিভ শেল উপসর্গ / প্রত্যয় অপসারণ বৈশিষ্ট্যটি ব্যবহার করে একটি সহজ এবং আরও কার্যকর উপায় রয়েছে:
temp="${opt%\"}"
temp="${temp#\"}"
echo "$temp"
${opt%\"}
প্রত্যয়টি মুছে ফেলবে "
(শেল ব্যাখ্যাটি আটকাতে ব্যাকস্ল্যাশ নিয়ে পালানো)।
${temp#\"}
উপসর্গটি মুছে ফেলবে "
(শেল এর ব্যাখ্যা আটকাতে ব্যাকস্ল্যাশ নিয়ে পালানো)।
আরেকটি সুবিধা হ'ল এটি যদি আশেপাশের উদ্ধৃতিগুলি থাকে তবে কেবল আশেপাশের উদ্ধৃতিগুলি সরিয়ে ফেলবে।
বিটিডাব্লু, আপনার সমাধান সর্বদা প্রথম এবং শেষ চরিত্রটিকে সরিয়ে দেয়, সে যাই হোক না কেন (অবশ্যই, আমি নিশ্চিত যে আপনি নিজের ডেটা জানেন তবে আপনি কী অপসারণ করছেন সে সম্পর্কে নিশ্চিত হওয়া আরও ভাল)।
সেড ব্যবহার:
echo "$opt" | sed -e 's/^"//' -e 's/"$//'
(উন্নত সংস্করণ, jfgagne দ্বারা নির্দেশিত হিসাবে, প্রতিধ্বনির হাত থেকে মুক্তি)
sed -e 's/^"//' -e 's/"$//' <<<"$opt"
সুতরাং এটি কোনও নেতৃত্বের "
সাথে কোনও "
কিছুই ছাড়াই স্থান দেয় এবং কিছুই দিয়ে কিছুই অনুসরণ করে না। একই অনুরোধে (পাইপ দিয়ে অন্য সিড শুরু করার দরকার নেই Using ব্যবহার করে -e
আপনার একাধিক পাঠ্য প্রক্রিয়াজাতকরণ থাকতে পারে)।
sed "s/^\(\"\)\(.*\)\1\$/\2/g" <<<"$opt"
। এই বাক্য গঠনটি কেবল তখনই কোয়েটগুলি সরিয়ে ফেলবে যখন কোনও মিলের জুড়ি থাকবে।