sort | uniqіснував раніше sort -uі сумісний з більш широким спектром систем, хоча майже всі сучасні системи підтримують -u- це POSIX. Це здебільшого повернення до днів, коли sort -uїх не існувало (і люди не прагнуть змінювати свої методи, якщо спосіб, який вони знають, продовжує працювати, просто подивіться ifconfigпроти ipприйняття).
Ці два, ймовірно, об'єднані, оскільки для видалення дублікатів у файлі потрібна сортування (принаймні, у стандартному випадку), і це надзвичайно поширений випадок використання сортування. Це також швидше внутрішньо, внаслідок можливості одночасно робити обидві операції (і через те, що він не вимагає IPC між 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«s $PIPESTATUSмасив, але це не завжди вірно).