লাইনের শেষে লাইন নম্বরগুলি এবং হিট গণনাটি দেখানোর জন্য আমি কীভাবে আমার গ্রেপ আউটপুটটিকে ফর্ম্যাট করতে পারি?


378

আমি একটি ফাইলের স্ট্রিং মেলে গ্রেপ ব্যবহার করছি। এখানে একটি উদাহরণ ফাইল:

example one,
example two null,
example three,
example four null,

grep -i null myfile.txt আয়

example two null,
example four null,

আমি কীভাবে মিলিত রেখাগুলি তাদের লাইন নম্বরগুলির সাথে একত্রে ফিরে আসতে পারি:

  example two null, - Line number : 2
  example four null, - Line number : 4
  Total null count : 2

আমি জানি -সি মোট মিলিত রেখাগুলি প্রত্যাবর্তন করে, তবে total null countসামনে যুক্ত করার জন্য এটি কীভাবে সঠিকভাবে ফর্ম্যাট করা যায় না এবং আমি কীভাবে লাইন সংখ্যা যুক্ত করতে জানি না।

আমি কি করতে পারি?

উত্তর:


600

-n রিটার্ন লাইন নম্বর।

-iউপেক্ষা-কেস জন্য। কেস ম্যাচিংয়ের প্রয়োজন না হলে কেবল ব্যবহার করতে হবে

$ grep -in null myfile.txt

2:example two null,
4:example four null,

awkম্যাচের পরে লাইন নম্বরটি মুদ্রণের জন্য একত্রিত করুন :

$ grep -in null myfile.txt | awk -F: '{print $2" - Line number : "$1}'

example two null, - Line number : 2
example four null, - Line number : 4

মোট নাল গণনা মুদ্রণ করতে কমান্ড প্রতিস্থাপন ব্যবহার করুন:

$ echo "Total null count :" $(grep -ic null myfile.txt)

Total null count : 2

আমি আগেরটির পরিবর্তে লাইন নম্বর যুক্ত করে এটি বিন্যাস করতে পারি:?
লন্ডন

আপনার সমাধানটি ঠিকঠাক বলে মনে হচ্ছে তবে একটি ত্রুটি পানawk95: syntax error at source line context is >>> ' <<< missing } awk95: bailing out at source line 1
লন্ডন

দুঃখিত এখন লিনাক্সে চলেছে এটির কাজ করা :) এটি উইন্ডোজ সংস্করণটি এতটা ভাল ছিল না
লন্ডন

1
... নাইটস যারা বলছেন -niযে আপনি এই কৌশলটি কীভাবে মনে করেন
সান্তিয়াগো আরিজিটি

59

ব্যবহার করুন -nবা --line-number

পরীক্ষা করে দেখুন man grepপ্রচুর আরও বিকল্পের জন্য।


3
নতুন লিনাক্স ব্যবহারকারী ম্যান পৃষ্ঠা পড়তে অলস তবে তারা যদি লিনাক্সটি যথেষ্ট পরিমাণে ব্যবহার করে তবে সেগুলি এটির জন্য ব্যবহার করা হবে :) এটি অত্যন্ত দরকারী :)
ডিজং নগুইন

19
সর্বদা অলস নয়, (তবে কখনও কখনও) প্রায়শই এটি হয় যে কোনও নতুন লিনাক্স ব্যবহারকারীকে ম্যান পৃষ্ঠাটি বুঝতে সমস্যা হয়। (এগুলি ক্রিপ্টিক মনে হতে পারে )
TecBrat

কখনও কখনও ম্যান পেজ অনেক পৃষ্ঠা নিতে পারে। এবং এগুলি সমস্তই পড়া খুব কঠিন
ইউজেন কনকভ

7

grep -n -i null myfile.txtপ্রতিটি ম্যাচের সামনের লাইন নম্বর আউটপুট ব্যবহার করুন ।

আমি ভাবি না যে গ্রেপের সাথে মিলিত মোট রেখার গণনা মুদ্রণের জন্য একটি সুইচ রয়েছে তবে আপনি এটি সম্পাদন করতে কেবল গ্রেপের আউটপুটটি ডাব্লু-তে পাইপ করতে পারেন:

grep -n -i null myfile.txt | wc -l

3
-সি মোট মিলিত রেখাগুলি মুদ্রণ করবে
daptchery

তুমি ঠিক. দুর্ভাগ্যক্রমে এটি স্বাভাবিক আউটপুটকেও দমন করে।
ঝিনেঞ্জার


4

grepলাইনগুলি খুঁজে বের করে এবং লাইন সংখ্যাগুলি আউটপুট দেয় তবে আপনাকে "প্রোগ্রাম" করতে দেয় না things আপনি যদি স্বেচ্ছাসেবী পাঠ্য অন্তর্ভুক্ত করতে এবং অন্যান্য "প্রোগ্রামিং" করতে চান তবে আপনি বিশ্রী ব্যবহার করতে পারেন,

$ awk '/null/{c++;print $0," - Line number: "NR}END{print "Total null count: "c}' file
example two null,  - Line number: 2
example four null,  - Line number: 4
Total null count: 2

বা কেবল শেল ব্যবহার করে (ব্যাশ / কেএসএল)

c=0
while read -r line
do
  case "$line" in
   *null* )  (
    ((c++))
    echo "$line - Line number $c"
    ;;
  esac
done < "file"
echo "total count: $c"

3

বা পার্লে (সম্পূর্ণতার জন্য ...):

perl -npe 'chomp; /null/ and print "$_ - Line number : $.\n" and $i++;$_="";END{print "Total null count : $i\n"}'

2

লিনাক্স কমান্ড লিনাক্সের জন্য এই লিঙ্কটি দেখুন: http://linuxcommand.org/man_pages/grep1.html

লাইন নং, কোডের লাইন এবং ফাইল প্রদর্শন করার জন্য আপনার টার্মিনাল বা সেন্টিমিটে এই কমান্ডটি ব্যবহার করুন, গিটব্যাশ (টার্মিনাল দ্বারা চালিত)

grep -irn "YourStringToBeSearch"

1

ভেবেছিলাম এমন কিছু আমি চাই যা আপনাকে ভবিষ্যতে সহায়তা করতে পারে। একাধিক স্ট্রিং এবং আউটপুট লাইন নম্বরগুলি অনুসন্ধান করতে এবং আউটপুট মাধ্যমে ব্রাউজ করতে, টাইপ করুন:

egrep -ne 'null|three'

প্রদর্শন করা হবে:

2:example two null,  
3:example three,  
4:example four null,   

egrep -ne 'null|three' | less

কম অধিবেশন আউটপুট প্রদর্শিত হবে

এইচটিএইচ জুন

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