:aমূল নির্দেশের বাইরে লেবেল লাগানোর দরকার নেই , -eবিকল্পের প্রয়োজনীয়তাও নেই; অবশেষে, এটি /$/অতিরিক্ত অতিরিক্ত (প্রতিটি লাইনের একটি EOL অক্ষর রয়েছে)।
অন্যান্য উত্তরগুলি উন্নত করে, একজন পেয়ে যায়
sed -i ':a; N; s/\n/ /; ta' file
নীচে লিখিত থাকলে কোনটি পরিষ্কার হয়,
sed -i ':a
N
s/\n/ /
ta' file
কমান্ড নিম্নলিখিত হিসাবে কাজ করে:
N (মাল্টলাইন) প্যাটার্ন স্পেসে পরবর্তী লাইনটি যুক্ত করে, এতে ইতিমধ্যে বর্তমান লাইন রয়েছে;
s/\n/ /একটি স্থান দিয়ে \nউত্পাদিত নতুন লাইন চরিত্রটি প্রতিস্থাপন করুন ;N
ta:a দ্বিতীয় ধাপে প্রতিস্থাপনটি সফল হওয়ার পরে লেবেলটি অনুসরণ করে স্ক্রিপ্ট লাইনে চলে যায় , অর্থাত্ যদি প্রতিস্থাপনটি ঘটে থাকে তবে স্ক্রিপ্টের শেষে "আঘাত" না করে অর্থাত্ ইনপুটটির অন্য একটি লাইন না পড়েই মৃত্যুদণ্ড 1 ধাপে চলে যায় ।
নিম্নলিখিত নোট করুন;
sedপ্রথম লাইন থেকে শুরু করে একের পর এক ইনপুট ফাইলের লাইনগুলি পড়ে ;
:a এটি কেবল একটি লেবেল, মৃত্যুদন্ড কার্যকর করার জন্য নয়;
N , নীতিগতভাবে, যে কোনও লাইনে মৃত্যুদন্ড কার্যকর করা হয়, কিন্তু
s/\n/ /(নীতিগতভাবে যে কোনও লাইনে মৃত্যুদন্ড কার্যকর করা) যে কোনও লাইনে সফল তবে শেষেরটি , তাই
taস্ক্রিপ্টের শেষটি তখনই পৌঁছানো যায় যখন ইনপুটটির শেষ লাইনটি পড়ে (একমাত্র লাইন যেখানে sব্যর্থ হয়), তাই
- প্রথমটি পড়ার পরে প্যাটার্ন স্পেসে আর কোনও ইনপুট লাইনটি পড়বে না, যদি না শেষটিটি না পড়ে থাকে তবে তারপরে আর পড়ার আর কোনও রেখা নেই এবং অন্তর্নিহিত
pকমান্ড কার্যকর করা হয়।
সুতরাং স্ক্রিপ্টটি মূলত ইনপুটটির প্রথম লাইনটিতে পড়ে এবং নিম্নলিখিত লাইনগুলিকে একে একে যুক্ত করে রাখে, প্রতিবার একটি স্থানের সাথে নিউলাইনটি স্থাপন করে; শেষ লাইনটি সংযুক্ত হওয়ার পরে (এবং \nএকটি স্পেসে পরিবর্তিত হয়ে), Nকোনও লাইন সংযোজন করতে পারে না, sব্যর্থ হয়, taএড়িয়ে যায়, স্ক্রিপ্টের শেষে পৌঁছে যায় এবং pআবদ্ধ রিন্ট স্টেটমেন্টটি বর্তমান লুং 1-লাইন প্যাটার্ন স্পেসে কার্যকর করা হয় ।
-iবিকল্প ইনপুট ফাইল কর্মের পরিবর্তে fileপুরো 1-লাইন প্যাটার্ন স্থান সঙ্গে।