এই প্রশ্নের এখনও পর্যন্ত অনেক ভাল উত্তর দেওয়া হয়েছে, কিন্তু আমি এখনও awk
ব্যবহার না করে একটি মিস করছি getline
। যেহেতু, সাধারণভাবে , এটি ব্যবহারের প্রয়োজন হয় না getline
, তাই আমি এই জন্য যাব:
awk ' f && NR==f+1; /blah/ {f=NR}' file #all matches after "blah"
অথবা
awk '/blah/ {f=NR} f && NR==f+1' file #matches after "blah" not being also "blah"
যুক্তি সর্বদা লাইনটি যেখানে "ব্লাহ" পাওয়া যায় তা সংরক্ষণ করে এবং তারপরে সেই রেখাগুলি মুদ্রণের মধ্যে অন্তর্ভুক্ত থাকে যা পরে এক লাইন থাকে।
পরীক্ষা
নমুনা ফাইল:
$ cat a
0
blah1
1
2
3
blah2
4
5
6
blah3
blah4
7
"ব্লাহ" এর পরে সমস্ত লাইন পান। এটি অন্য "ব্লাহ" মুদ্রণ করে যদি এটি প্রথমটির পরে প্রদর্শিত হয়।
$ awk 'f&&NR==f+1; /blah/ {f=NR}' a
1
4
blah4
7
"ব্লাহ" এর পরে সমস্ত রেখাগুলি যদি সেগুলি "বালাহ" না থাকে তবে তা পান।
$ awk '/blah/ {f=NR} f && NR==f+1' a
1
4
7
-A1
বিকল্পের সন্ধান করতে আসবে