গ্রেপ আউটপুট থেকে আমি কীভাবে অনন্য ফলাফলগুলি ফিল্টার করতে পারি?


75

লিনাক্সে, আমি একটি ফাইল ব্যবহার করে একটি স্ট্রিং গ্রেপ করতে পারি grep mySearchString myFile.txt। আমি কীভাবে কেবল অনন্য ফলাফল পেতে পারি?

উত্তর:


125

আপনি এটি sortএবং uniqইউটিলিটিগুলি দিয়ে এটি অর্জন করতে পারেন ।

উদাহরণ:

[জন @ অসাধারণ ~] $ প্রতিধ্বনি-ই "পরীক্ষা \ নস্ট \ নস্ট an ন্যানোথ টেস্ট test নস্ট"
পরীক্ষা
পরীক্ষা
পরীক্ষা
অন্য পরীক্ষা
পরীক্ষা
[জন @ অসাধারণ ~] $ প্রতিধ্বনি-ই "পরীক্ষা \ নস্ট \ নস্ট an ন্যানোথ টেস্ট test নস্ট" | সাজানো | uniq
অন্য পরীক্ষা
পরীক্ষা

ডেটা নির্ভর করে আপনি কিছু স্যুইচও ব্যবহার করতে পারেন।


9
@ জন টি - ডেটা অর্ডার না sortহওয়ার আগে আমি ব্যবহার করার পরামর্শ দেব uniq। অন্যথায় uniqপুরোপুরি কাজ করবে না।
21:51

টি এখন আমি upvote করতে পারেন! আপনি আমাকে এখানে অন্যদের স্ক্রিপ্টগুলি
লেখতেও

42
sort -uপরিবর্তে ব্যবহার করুন sort | uniq। এটি একটি প্রক্রিয়া সংরক্ষণ করে, মোট আই / ও হ্রাস করে এবং যে তুলনা করতে হবে তার মোট সংখ্যা হ্রাস করে।
ক্রিস জনসেন

@ ক্রিস জোহেনসেন আপনার মন্তব্যটি একটি উত্তর হিসাবে তৈরি করা উচিত কারণ এটি এখন আরও ভাল সমাধান হিসাবে বর্তমান দেওয়া উত্তর
নিকো ভ্যান বেল

1

তুমি ব্যবহার করতে পার:

grep -rohP "(mySearchString)" . | sort -u

-আর: পুনরাবৃত্তি

-o: কেবল পাঠ্যের মেলানো অংশটি মুদ্রণ করুন

-হ: ফাইলের নাম মুদ্রণ করবেন না

-পি: পার্ল স্টাইলের রেজেক্স (আপনি আপনার ক্ষেত্রে নির্ভর করে এর পরিবর্তে ই ব্যবহার করতে পারেন)

sort -usort | uniq@ ক্রিস জনসন উল্লেখ করেছেন যেহেতু তার চেয়ে ভাল ।

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