উত্তর:
regular বি নিয়মিত প্রকাশে শব্দের সীমানা মেলে (অর্থাত্ প্রথম শব্দের অক্ষর এবং শব্দের অক্ষরের মধ্যে অবস্থান):
$ echo "bar embarassment" | sed "s/\bbar\b/no bar/g"
no bar embarassment
\band\bদিনটি বাঁচিয়েছি "
Mac OS X এর উপর, তন্ন তন্ন এই Regex syntaxes ভেতরে কাজ sed পুরো শব্দ মেলানোর জন্য
\bmyWord\b\<myWord\>এখনই আমাকে শোনো এবং আমাকে বিশ্বাস করুন, এই কুরুচিপূর্ণ বাক্য গঠনটি আপনার ব্যবহার করা উচিত:
/[[:<:]]myWord[[:>:]]/সুতরাং, উদাহরণস্বরূপ, প্রতিস্থাপন করতে পুদিনা সঙ্গে পুদিনার মত শুধুমাত্র পুরো শব্দের জন্য:
sed "s/[[:<:]]mint[[:>:]]/minty/g"sedম্যাকপোর্টস বা হোমব্রিউয়ের মাধ্যমে কেবল জিএনইউ (এবং অন্যান্য প্রতিটি জিএনইউ সরঞ্জাম) ইনস্টল করুন এবং নিশ্চিত করুন যে এটি আপনার মধ্যে প্রথম আসে PATH। ম্যাককে মোটামুটি ব্যবহারযোগ্য করে তোলা সম্ভব।
brew install coreutils, যা সমস্ত gnu সরঞ্জামের উপসর্গ করে।
brew install gnu-sedব্যবহার করতেgsed
perl -pe 's|\bone\b|two|g'। এখানে এবং সেখানে ব্যর্থতার সাথে স্থিরভাবে কাজ করে।
আমার একটি মেশিনে, " \b" (উদ্ধৃতি ব্যতীত) দিয়ে শব্দটি সীমিত করা কার্যকর হয়নি। সমাধানটি হ'ল \<ডিলিমিটার শুরু করার জন্য " " এবং সীমানা \>শেষ করার জন্য " " ব্যবহার করা।
জোয়াকিম লন্ডবার্গের উদাহরণ দিয়ে ব্যাখ্যা করতে :
$ echo "bar embarassment" | sed "s/\<bar\>/no bar/g"
no bar embarassment
শেল কমান্ডে:
echo "bar embarassment" | sed "s/\bbar\b/no bar/g"
বা:
echo "bar embarassment" | sed "s/\<bar\>/no bar/g"
তবে আপনি যদি ভিমে থাকেন তবে আপনি কেবল পরে ব্যবহার করতে পারেন:
:% s/\<old\>/new/g
$ echo "bar embarassment"|awk '{for(o=1;o<=NF;o++)if($o=="bar")$o="no bar"}1'
no bar embarassment
echo " bar embarassment " | awk '{for(o=1;o<=NF;o++)if($o=="bar")$o="no bar"}1' | cat -Eদেয় no bar embarassment$।