কীভাবে হিটের পরে পরবর্তী এন লাইনগুলি গ্রেপ করে মুদ্রণ করবেন?


16

আমি একটি পাঠ্য ফাইলে ঘটনার জন্য গ্রেপ করতে চাই, তারপরে প্রতিটি ঘটনার সন্ধানের পরে নিম্নলিখিত এন লাইনগুলি মুদ্রণ করুন। কোন ধারনা?

উত্তর:


23

গ্রেপের নিম্নলিখিত বিকল্পগুলি রয়েছে যা আপনাকে এটি করতে দেয় (এবং এটির মতো জিনিস)। আরও তথ্যের জন্য আপনি ম্যান পৃষ্ঠাটি একবার দেখতে চান :

  • -আর প্রতিটি ম্যাচের পরে পিছনে প্রসঙ্গের নম লাইন মুদ্রণ করুন। -বি এবং -সি বিকল্পগুলিও দেখুন।

  • -বি নাম্বার প্রতিটি ম্যাচের আগে নেতৃস্থানীয় প্রসঙ্গের নং লাইনগুলি মুদ্রণ করুন -A এবং -C বিকল্পগুলিও দেখুন।

  • -সি [num] প্রতিটি ম্যাচকে ঘিরে শীর্ষস্থানীয় এবং পিছনের প্রসঙ্গের সংখ্যা লাইনগুলি মুদ্রণ করুন। ডিফল্টটি 2 এবং এটি -A 2 -B 2 এর সমান Note দ্রষ্টব্য: বিকল্প এবং এটির যুক্তির মধ্যে কোনও শ্বেত স্পেস দেওয়া যাবে না।


7

আপনার যদি জিএনইউ থাকে grepতবে এটি -A/ --after-contextবিকল্প। অন্যথায়, আপনি এটি সঙ্গে করতে পারেন awk

awk '/regex/ {p = N}
     p > 0   {print $0; p--}' filename

1
awk '/regex/{p=2} p > 0 {print $0; p--}' filename- কাজ, আপনার না।
ব্লেডমিট

4

আউটপুট থেকে ম্যাচের বাইরে কত লাইন নির্দিষ্ট -Aকরতে আর্গুমেন্টটি ব্যবহার করুন grep


3

মিলের লাইনের পরে এন লাইনগুলি প্রিন্ট করুন

মিলের লাইনের পরে এন লাইনগুলি প্রিন্ট করতে বিকল্পের grepসাহায্যে আপনি ব্যবহার করতে পারেন -A n

উদাহরণ স্বরূপ:

$ cat mytext.txt 
  Line1
  Line2
  Line3
  Line4
  Line5
  Line6
  Line7
  Line8
  Line9
  Line10

$ grep -wns Line5 mytext.txt -A 2
5:Line5
6-Line6
7-Line7

অন্যান্য সম্পর্কিত বিকল্প:

মিলে যাওয়া লাইনের আগে এন লাইনগুলি প্রিন্ট করুন

-B nবিকল্প ব্যবহার করে আপনি লাইনের সাথে মিল রেখে এন লাইনগুলি মুদ্রণ করতে পারেন।

$ grep -wns Line5 mytext.txt -B 2
3-Line3
4-Line4
5:Line5

মিলের লাইনের আগে এবং পরে এন লাইনগুলি প্রিন্ট করুন

-C nবিকল্প ব্যবহার করে আপনি লাইনগুলির আগে এবং পরে এন লাইনগুলি মুদ্রণ করতে পারেন।

$ grep -wns Line5 mytext.txt -C 2
3-Line3
4-Line4
5:Line5
6-Line6
7-Line7
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.