স্ট্যান্ডার্ড সহ sed
আপনি কোনও ফাইল থেকে পঠিত পাঠ্যে কোনও নতুন লাইন দেখতে পাবেন না । এটি কারণ প্রতিটি sed
লাইনে লাইনে পড়া হয় এবং সুতরাং বর্তমান পংক্তির পাঠ্য শেষে sed
'র প্যাটার্ন স্পেসে কোনও নতুন লাইন নেই । অন্য কথায়, sed
নিউলাইন-সীমাবদ্ধ ডেটা পড়ে এবং ডিলিমেটাররা কোনও sed
স্ক্রিপ্ট যা দেখায় তার অংশ হয় না ।
নিয়মিত এক্সপ্রেশনগুলি ব্যবহার করে (বা শুরুতে, ব্যবহার করে ) লাইনের শেষে অ্যাঙ্কর করা যেতে পারে । একটি লাইনের শুরু / শেষে একটি অভিব্যক্তি নোঙ্গর করা একে একে ঠিক সেখানে মিলাতে বাধ্য করে, এবং কেবল লাইনের কোথাও নয়।$
^
আপনি যদি কিছু [A-Za-z]*
দিয়ে লাইনের শেষে প্যাটার্নের সাথে মিলে যাওয়া কোনও কিছু প্রতিস্থাপন করতে চান তবে প্যাটার্নটি এই জাতীয়ভাবে অ্যাঙ্করিং করুন:
[A-Za-z]*$
... এটি লাইনের শেষে এবং অন্য কোথাও মিলতে বাধ্য করবে।
যাইহোক, [A-Za-z]*$
এছাড়াও সাথে মেলে কিছুই (উদাহরণস্বরূপ, শেষে খালি স্ট্রিং উপস্থিত প্রত্যেক লাইন), আপনি ম্যাচিং বাধ্য প্রয়োজন কিছু নির্দিষ্ট করে, যেমন
[A-Za-z][A-Za-z]*$
অথবা
[A-Za-z]\{1,\}$
সুতরাং, আপনার সেড কমান্ড লাইন এইভাবে হবে
$ sed 's/[A-Za-z]\{1,\}$/replace/' file.txt
আমি -E
এখানে সুইচটি ব্যবহার করি নি কারণ এটির প্রয়োজন নেই। এটি দিয়ে, আপনি লিখতে পারে
$ sed -E 's/[A-Za-z]+$/replace/' file.txt
এটা স্বাদের বিষয়।