sort | uniq
पहले मौजूद था sort -u
, और सिस्टम की एक विस्तृत श्रृंखला के साथ संगत है, हालांकि लगभग सभी आधुनिक सिस्टम समर्थन करते हैं -u
- यह पॉसिक्स है। यह ज्यादातर उन दिनों के लिए होता है जब sort -u
अस्तित्व में नहीं था (और लोग अपने तरीकों को बदलने के लिए नहीं जाते हैं अगर उन्हें पता है कि जिस तरह से काम करना जारी है, बस ifconfig
बनाम ip
अपनाने को देखें)।
इन दोनों का विलय होने की संभावना थी क्योंकि किसी फ़ाइल के भीतर डुप्लिकेट को हटाने के लिए छंटाई की आवश्यकता होती है (कम से कम, मानक मामले में), और सॉर्ट का एक अत्यंत सामान्य उपयोग मामला है। यह आंतरिक रूप से तेजी से एक ही समय में दोनों संचालन करने में सक्षम होने के परिणामस्वरूप (और इस तथ्य के कारण है कि इसके बीच आईपीसी की आवश्यकता नहीं है uniq
और sort
)। खासकर यदि फ़ाइल बड़ी है, sort -u
तो संभवतः डेटा को सॉर्ट करने के लिए कम मध्यवर्ती फ़ाइलों का उपयोग करेगी।
अपने सिस्टम पर मुझे लगातार इस तरह के परिणाम मिलते हैं:
$ dd if=/dev/urandom of=/dev/shm/file bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 8.95208 s, 11.7 MB/s
$ time sort -u /dev/shm/file >/dev/null
real 0m0.500s
user 0m0.767s
sys 0m0.167s
$ time sort /dev/shm/file | uniq >/dev/null
real 0m0.772s
user 0m1.137s
sys 0m0.273s
यह भी की वापसी कोड मुखौटा नहीं करता sort
है, जो महत्वपूर्ण हो सकता है (आधुनिक गोले में वहाँ तरीके यह प्राप्त करने के लिए, उदाहरण के लिए, कर रहे हैं bash
की $PIPESTATUS
सरणी, लेकिन यह हमेशा सच नहीं था)।