লিনাক্সে ফাইল থেকে সর্বাধিক সাধারণ উপস্থিত রেখাগুলি পান


11

আমার কাছে একটি পাঠ্য ফাইল রয়েছে যার প্রতি লাইনে বিভিন্ন শব্দ রয়েছে।
আমি কীভাবে 12 টি ঘন ঘন উপস্থিত হওয়া ফাইলগুলি সন্ধান করব এবং সেগুলি প্রদর্শন করব?
স্ক্রিপ্টিং কমান্ডগুলির সাথে আমি খুব ভাল নই।

যদি আমি আদেশটি এবং ব্যাখ্যা পেতে পারি যাতে আমি এটি কীভাবে ব্যবহার করতে হয় তা বুঝতে পারি এবং আদেশগুলিতে আমার জ্ঞানটি প্রসারিত করতে পারি এটি দুর্দান্ত হবে!


উত্তর:


21

আপনি বিল্ট-ইন কমান্ডগুলির সাহায্যে এটি সহজেই করতে পারেন।

  • ফাইলের বিষয়বস্তুগুলি খাওয়ান sort। আমাদের পরবর্তী পদক্ষেপের জন্য এটি দরকার।
  • এটি যায় uniq -c। এটি প্রতিটি লাইনের অনন্য ঘটনা গণনা করবে। যদি অনুরূপ লাইনগুলি সংলগ্ন না হয় তবে এটি আগে বাছাই না করে কাজ করবে না।
  • তারপরে, এটিকে অন্যটিকে খাওয়ান sort, যা এখন বিপরীত ক্রমে সাজানো ( r) এবং আউটপুটটির সংখ্যাসূচক ( n) ব্যাখ্যার উপর ভিত্তি করে uniq। আমাদের সংখ্যাসূচক বিকল্পটি প্রয়োজন কারণ অন্যথায়, সংখ্যার সামনের স্থানটি ভুল ফলাফলের দিকে নিয়ে যায় (আরও জন্য জিএনইউর sortসহায়তা দেখুন)।
  • অবশেষে, শুধুমাত্র প্রথম বারোটি লাইনটি সাথে দেখান head

আদেশটি তখন হবে:

sort test.txt | uniq -c | sort -rn | head -n 12

এখানে আউটপুট ঘটনাগুলির প্রকৃত গণনা ধারণ করে।

কেবল রেখার কাঁচা তালিকা পেতে, আপনি আউটপুটটি এখানে পাইপ করতে পারেন sed:

sort test.txt | uniq -c | sort -rn | head -n 12 | sed -E 's/^ *[0-9]+ //g'

উদাহরণ:

I'm not there very often
I'm not there very often
Look at me!
Look at me!
Look at me!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!

প্রথম কমান্ড থেকে আউটপুট, তবে কেবল 2 টি থেকে নির্বাচন করা head:

6 Hello there!
3 Look at me!

দ্বিতীয় কমান্ড থেকে আউটপুট:

Hello there!
Look at me!

1
ব্যবহারের আগে আপনাকে এটি বাছাই করতে হবে uniq
cirus

@ এসএলএইচকে: আপনাকে ধন্যবাদ! একটি প্রশ্ন: sort -rnবিপরীত ক্রমে সাজানো ফিল্ড হিসাবে বাছাই করা প্রতিটি লাইনের পাশের নম্বরটি uniq -c? আমি ভেবেছিলাম যে এরকম কিছু k1বা এরকম কিছু ব্যবহার করা হবে
জিম

@ জিম ঠিক rবিপরীত হয়, এবং nসংখ্যা দ্বারা উত্পাদিত সংখ্যার উপর সাজানো uniq। আপনি ঠিক কি বলতে চাইছেন k1?
২১

@ এসএলএইচএইচকি: আমি এই কমান্ডগুলি ব্যবহার করে বের করার চেষ্টা করছিলাম manএবং আমি বুঝতে পেরেছিলাম যে -kক্ষেত্রটি বাছাই করার জন্য কিছু ব্যবহার করে একটি বাক্য গঠন অবশ্যই ব্যবহার করতে হবে
জিম

@ ক্রিস: কোন ধরণের ক্ষেত্রে আগে কীভাবে বাছাই করা দরকার?
জিম

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