আমার নিম্নলিখিত ফরম্যাটে একটি ফাইল আছে:
--- V1 ---
Hi there
--- V2 ---
--- V3 ---
What's good
--- V4 ---
--- V5 ---
--- V6 ---
আমি তিনটি ড্যাশ না থাকা একটি লাইন দ্বারা অবিলম্বে অনুসরণ করা হয় না যে তিনটি ড্যাশ সঙ্গে শুরু লাইন কোন মুছে ফেলার জন্য কিছু ধরনের bash স্ক্রিপ্ট ব্যবহার করতে চান, উদাহরণস্বরূপ।
--- V1 ---
Hi there
--- V3 ---
What's good
আমি সহজেই ড্যাশের সাথে শুরু হওয়া সমস্ত লাইন মুছে ফেলতে পারি, তবে নিম্নলিখিত লাইনের উপর ভিত্তি করে কীভাবে এটি করতে হবে তা জানবেন না (অথবা বিকল্পভাবে, নন-ড্যাশেড লাইনগুলির পূর্বে লাইনের উপর ভিত্তি করে)।
সম্ভবত আপনার প্রশ্নের উত্তর নেই, তবে 1 লাইনের আংশিক সমাধান - grep -v-B1 "^ ---" file.name সমস্ত লাইন সন্ধান করবে যা "---" দিয়ে শুরু হবে না এবং সেগুলি প্রদর্শন করবে এবং লাইন লাইন অবিলম্বে আগে। এটি কেবল তখনই কাজ করবে যদি প্রতিটি পেলড লাইন অনুসরণ করা হয় এবং "---" সহ একটি লাইন দ্বারা পূর্ববর্তী হয়, অর্থাৎ একাধিক লাইনগুলিতে কাজ করবে না।
—
davidgo
এটা কি পারে আছে একটি bash স্ক্রিপ্ট হতে? এই মত কিছু sed, grep, awk, বা এমনকি vim সঙ্গে সম্পন্ন করা যেতে পারে।
—
Mikey T.K.
এটি একটি bash স্ক্রিপ্ট হতে হবে না, না। Grep ব্যবহার করে না একটি bash স্ক্রিপ্ট থেকে এটি অযোগ্য না, যদিও?
—
Birdie
@ ডেভিডগো আপনার উত্তরটি আসলে একাধিক লাইনের জন্য সঠিকভাবে কাজ করেছে, তাই আপনি যদি এটি উত্তর দিতে চান তবে মুক্ত মনে করুন এবং আমি এটি সঠিকভাবে চিহ্নিত করব। অন্যথায় আমি গোম্বাই স্যান্ডর এর উত্তরটি গ্রহণ করব, যা আরও জটিল কিন্তু সঠিক।
—
Birdie
এর জন্য ধন্যবাদ. আমি মনে করি Gombai Sandors উত্তর বেশ শান্ত তাই আমি এটি upvoted, কিন্তু আমি খনি যোগ কারণ আমি এটা অনেক সহজ এবং আরো দক্ষ মনে করি।
—
davidgo