سؤال

وهناك اختلاف في ترتيب UNIQ والفرز عند دعوتهم في شيل؟ أنا أتحدث هنا عن زمنيا والحكمة الفضاء.

grep 'somePattern' | uniq | sort

ومقابل.

grep 'somePattern' | sort | uniq

اختبار سريع على 140 ك خطوط نصيا أظهرت تحسنا سرعة طفيفة (5.5 ق مقابل 5.0 ق) للأسلوب الأول (الحصول على قيم UNIQ ثم الفرز)

وأنا لا أعرف كيفية قياس استخدام الذاكرة على الرغم

والسؤال الآن هو: هل الأمر فرقا؟ أم أنها تعتمد على greplines عاد (كثير من / بعض التكرارات)

وأنا أتطلع إلى إجاباتك

هل كانت مفيدة؟

المحلول

والوحيد <م> صحيحة النظام هو استدعاء uniq بعد sort، منذ الصفحة رجل لuniq تقول:

<اقتباس فقرة>   

وتجاهل لكن كل واحد من خطوط مماثلة المتعاقبة من INPUT (أو الإدخال القياسي)، والكتابة إلى الإخراج (أو الإخراج القياسي).

وولذلك يجب أن يكون

grep 'somePattern' | sort | uniq

نصائح أخرى

وأعتقد أن sort -u هي مناسبة لهذا السيناريو بالضبط، وسوف كلا النوع وuniquify الأشياء. من الواضح، والتي سوف تكون أكثر كفاءة من استدعاء sort وuniq بشكل فردي في أي ترتيب.

وUNIQ يعتمد على العناصر التي تم فرزها لإزالة التكرارات (لأنه يقارن البند السابق والحالي)، وبالتالي لماذا نوع تشغيل دائما قبل UNIQ. انها محاولة ونرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top