sort | uniq
daha önce mevcuttu sort -u
ve daha geniş bir sistem yelpazesi ile uyumlu, neredeyse tüm modern sistemler destekliyor -u
olsa da, POSIX. Çoğunlukla sort -u
varolmadığı günler için bir geri dönüş (ve insanlar bildikleri şekilde çalışmaya devam ederse yöntemlerini değiştirme eğiliminde değillerdir, sadece bakmaya ifconfig
ve ip
evlat edinmeye bakarlar ).
İkisi büyük olasılıkla birleştirildi, çünkü bir dosya içindeki kopyaların kaldırılması sıralama gerektiriyor (en azından standart durumda) ve sıralamada oldukça yaygın bir kullanım durumuydu. Bu (ve o nedeniyle arasındaki IPC gerektirmez gerçeğine aynı anda her iki işlemleri yapabilmek olmanın bir sonucu olarak daha hızlı içten de uniq
ve sort
). Özellikle dosya büyükse, sort -u
verileri sıralamak için büyük olasılıkla daha az ara dosya kullanır.
Sistemimde sürekli şöyle sonuçlar alıyorum:
$ 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
Aynı zamanda dönüş kodu maske değil sort
önemli olabilir, (modern kabuklarda orada bu almak için yollar, örneğin, bash
'ın $PIPESTATUS
dizi, ancak bu her zaman doğru değildi).