سؤال كيف يمكنني تصفية النتائج الفريدة من إخراج grep؟


في لينكس ، يمكنني الحصول على سلسلة من ملف باستخدام grep mySearchString myFile.txt. كيف يمكنني الحصول فقط على النتيجة الفريدة؟


73
2018-02-21 02:41


الأصل




الأجوبة:


يمكنك تحقيق هذا مع sort و uniq خدمات.

مثال:

[john @ awesome ~] $ echo -e "test \ ntest \ ntest \ nan test \ ntest"
اختبار
اختبار
اختبار
اختبار آخر
اختبار
[john @ awesome ~] $ echo -e "test \ ntest \ ntest \ nan test \ ntest" | نوع UNIQ
اختبار آخر
اختبار

اعتمادا على البيانات التي قد ترغب في الاستفادة من بعض المفاتيح كذلك.


120
2018-02-21 02:52



@ جون ت - أوصي باستخدام sort قبل uniq في حالة عدم طلب البيانات. غير ذلك uniq لن يعمل بالكامل. - Studer
نسيت @ Studer حول هذه التفاصيل ، شكرا لك! - John T
ر الآن يمكنني upvote! لقد ساعدتني أيضًا في كتابة نصوص أخرى هنا ؛) - Studer
استعمال sort -u بدلا من sort | uniq. يقوم بحفظ عملية ، ويقلل إجمالي I / O ، ويقلل العدد الإجمالي للمقارنات التي يجب إجراؤها. - Chris Johnsen
ChrisJohnsen يجب أن تجعل هذا التعليق إجابة لأنه حل أفضل ثم الإجابة الحالية - Nico Van Belle