sort | uniq
ada sebelumnya sort -u
, dan kompatibel dengan berbagai sistem yang lebih luas, meskipun hampir semua sistem modern mendukung -u
- itu POSIX. Ini sebagian besar merupakan kemunduran ke hari-hari ketika sort -u
tidak ada (dan orang-orang tidak cenderung mengubah metode mereka jika cara yang mereka tahu terus bekerja, lihat saja ifconfig
vs ip
adopsi).
Keduanya kemungkinan digabungkan karena menghapus duplikat dalam file memerlukan pengurutan (setidaknya, dalam kasus standar), dan merupakan kasus penggunaan yang sangat umum. Ini juga lebih cepat secara internal karena dapat melakukan kedua operasi pada saat yang sama (dan karena itu tidak memerlukan IPC antara uniq
dan sort
). Terutama jika file tersebut besar, sort -u
kemungkinan akan menggunakan lebih sedikit file perantara untuk mengurutkan data.
Di sistem saya, saya secara konsisten mendapatkan hasil seperti ini:
$ 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
Ini juga tidak menutupi kode kembali sort
, yang mungkin penting (dalam kerang modern ada cara untuk mendapatkan ini, misalnya, bash
's $PIPESTATUS
array, tapi ini tidak selalu benar).