গ্রেপের সাথে মোট কতগুলি লাইন মেলে তার পরিবর্তে মোট ম্যাচের সংখ্যা গণনা করা হচ্ছে


29

গ্রেপ কি এটি তৈরি করে এমন মোট মিলের সংখ্যা গণনা করার জন্য কোনও উপায় সরবরাহ করে? -C বিকল্পটি কেবল রেগের সংখ্যার সাথে মিলিয়েছে এমন লাইনের সংখ্যা প্রদান করে, তবে এই ক্ষেত্রে আমার প্রতি প্রতি লাইনে একাধিক মিল রয়েছে।

উত্তর:


29

এটা চেষ্টা কর:

grep -o -E "your expression" file |wc -l

ভাল, -ই কেবল একটি উদাহরণ, এটি -P, -F ইত্যাদি পয়েন্ট হতে পারে

পরীক্ষা:

kent$  echo "abc xxx yyy"|grep -cP "[a-z]{3}"      
1

kent$  echo "abc xxx yyy"|grep -oP "[a-z]{3}"|wc -l
3

8

একটি -o পতাকা রয়েছে যা ইঙ্গিত করে যে কেবলমাত্র লাইনটির সাথে মেলে সাবকশনটি মুদ্রিত হওয়া উচিত।

ডাব্লুসি-এল এর সাথে এটি ব্যবহার করুন:

grep -o "part of line" | wc -l

ম্যান গ্রেপ এটিও ব্যাখ্যা করে।


1

অন্য উত্তরের বিকল্প হিসাবে কেবল গ্রেপ ব্যবহার করে:

grep -o "seach pattern" somefile.txt | grep -c ""

প্রথম গ্রেপের ইন-ও প্রতিটি ম্যাচ আউটপুট করে এবং কেবল ম্যাচ করে - পুরো লাইনটি নয় (অবশ্যই পুরো লাইনটি ম্যাচটি না করে, অবশ্যই)। দ্বিতীয় গ্রেটে -c এর পরে তাদের গণনা করা হয়।

এটি টাইপ করতে আরও কয়েকটি অক্ষর রয়েছে (যেমন, 4 বা 5) তবে আমি মনে রাখতে এটি আরও সহজ মনে করি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.