গ্রেপ থেকে লাইন নম্বর কীভাবে পাবেন?


19

নিম্নলিখিত গ্রেপ

grep -r -e -n coll *

প্রদর্শিত হবে

fullpath/filename:  <tag-name>coll</tag-name>

নিম্নলিখিত পাঠ্যটি কোন লাইনে রয়েছে তা জানতে চাই, আমি যুক্ত করার চেষ্টা করেছি -n, তবে এটি কার্যকর হয়নি। আমি যোগ করার চেষ্টা করেছি | grep -n *, তবে এটি অদ্ভুত কিছু করেছিল।

আমি দেখতে চাই কি (আমি ফর্ম্যাট সম্পর্কে যত্ন নেই) হয়

fullpath/filename:10:  <tag-name>coll</tag-name>

1
-nবিকল্পটি ব্যবহার করার সময় আমি লাইন নম্বরগুলি দেখতে পাচ্ছি । আপনি যা পান তার আউটপুট পোস্ট করতে পারেন?
ক্রিস হার্পার

উত্তর:


18

-eবিকল্পগুলির তালিকার শেষে আপনার রাখা উচিত :grep -rne coll *


16

-আর-এর দরকার নেই!

একটি প্যাটার্নের লাইন নম্বর পান!

grep -n "pattern" file.txt

আপনি যদি আউটপুট হিসাবে কেবল লাইন নম্বর পেতে চান তবে এটিতে আরও একটি গ্রেপ কমান্ড যুক্ত করুন!

grep -n "pattern" file.txt | grep -Eo '^[^:]+'

1
কেবল লাইন নম্বর পেতে, এটি ব্যবহার করা সহজ cut, উদাহরণস্বরূপcut -f1 -d:
ওজান্দ্রিয়া

1

একটি নির্দিষ্ট ফাইলে একটি প্যাটার্ন গ্রেপ করতে, এবং মিলে যাওয়া লাইনগুলি পেতে:

grep -n <Pattern> <File> | awk -F: '{ print $1 }' | sort -u

বা cut@wjandrea দ্বারা প্রস্তাবিত হিসাবে ব্যবহার :

grep -n <Pattern> <File> | cut -f1 -d: | sort -u

কোথায়

  • <Pattern>একটি উদ্ধৃত গ্লোব প্যাটার্ন ( -Eregexp জন্য ব্যবহার বিকল্প );
  • <File> আপনার আগ্রহী ফাইলটি কি;
  • প্রথম পাইপ awk ...গ্রেপ আউটপুটে লাইন নম্বরগুলি ফিল্টার করে ( :প্রতিটি লাইনের আগে );
  • দ্বিতীয় পাইপটি নিশ্চিত করে যে লাইন সংখ্যাগুলি কেবল একবার উপস্থিত হবে।

শুধু লাইন নম্বর পেতে cut, cut -f1 -d:
ওউকের

@ wjandrea কীভাবে সহজ?
শেলজহান

আমার অর্থ সিনট্যাক্সটি সহজ
wjandrea

@ wjandrea এটি খুব উদ্দেশ্যমূলক বলে মনে হচ্ছে।
শেলজহান

@wjandrea এই বিদ্রূপের জন্য দুঃখিত, আমি আপনার পরামর্শ অন্তর্ভুক্ত করার জন্য সম্পাদনা করেছি :)
শেলজহান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.