যদি আমি এই কোডটি ব্যাশে চালাই:
echo dog dog dos | sed -r 's:dog:log:'
এটি আউটপুট দেয়:
log dog dos
আমি কীভাবে এটি কুকুরের সমস্ত ঘটনা প্রতিস্থাপন করতে পারি?
যদি আমি এই কোডটি ব্যাশে চালাই:
echo dog dog dos | sed -r 's:dog:log:'
এটি আউটপুট দেয়:
log dog dos
আমি কীভাবে এটি কুকুরের সমস্ত ঘটনা প্রতিস্থাপন করতে পারি?
উত্তর:
আপনার g
মোডিফায়ারটি যুক্ত করা উচিত যাতে সেড প্যাটার্ন বাফারের সামগ্রীর বৈশ্বিক প্রতিস্থাপন সম্পাদন করে :
echo dog dog dos | sed -e 's:dog:log:g'
সেডে চমত্কার ডকুমেন্টেশনের জন্য, http://www.grymoire.com/Unix/Sed.html দেখুন । এই বিশ্ব পতাকাটি এখানে ব্যাখ্যা করা হয়েছে: http://www.grymoire.com/Unix/Sed.html#uh-6
এর জন্য সরকারী ডকুমেন্টেশনটি http://www.gnu.org/software/sed/manual/GNU sed
এ উপলব্ধ
sed -E 's,foo,bar,g'
বিশ্বব্যাপী জিনিসটি করবেন না। আপনি যদি এটি পরিবর্তন করেন তবে sed -E -e 's,foo,bar,g'
এটি কাজ করে।
আপনাকে একটি g
শেষে রাখতে হবে, এটি "গ্লোবাল" এর জন্য দাঁড়িয়েছে:
echo dog dog dos | sed -r 's:dog:log:g'
^
man sed
উবুন্টু অনুসারে -r
বিকল্পটির অর্থ "বর্ধিত নিয়মিত অভিব্যক্তি ব্যবহার করুন"। সুতরাং প্রদত্ত কমান্ডটি ঠিকঠাক কাজ করে, যদিও এটির জন্য কাজ করার জন্য বর্ধিত নিয়মিত এক্সপ্রেশনগুলির বৈশিষ্ট্যগুলির প্রয়োজন নেই।
g
গ্লোবাল প্রতিস্থাপনের জন্য আপনার পতাকা দরকার , আপনার-r
এখানে বিকল্পের দরকার নেই ।