sort | uniq
đã tồn tại trước đây sort -u
và tương thích với nhiều hệ thống khác nhau, mặc dù hầu hết tất cả các hệ thống hiện đại đều hỗ trợ -u
- đó là POSIX. Đó chủ yếu là sự trở lại cho đến ngày sort -u
không tồn tại (và mọi người không có xu hướng thay đổi phương pháp của họ nếu cách mà họ biết vẫn tiếp tục hoạt động, chỉ cần nhìn vào ifconfig
so với ip
việc áp dụng).
Cả hai có khả năng được hợp nhất vì loại bỏ trùng lặp trong một tệp yêu cầu sắp xếp (ít nhất là trong trường hợp tiêu chuẩn) và là trường hợp sử dụng cực kỳ phổ biến. Nó cũng nhanh hơn trong nội bộ do có thể thực hiện cả hai hoạt động cùng một lúc (và do thực tế là nó không yêu cầu IPC giữa uniq
và sort
). Đặc biệt nếu tệp lớn, sort -u
có thể sẽ sử dụng ít tệp trung gian hơn để sắp xếp dữ liệu.
Trên hệ thống của tôi, tôi luôn nhận được kết quả như thế này:
$ 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
Nó cũng không che giấu mã trở lại của sort
, có thể là quan trọng (trong vỏ hiện đại có nhiều cách để có được điều này, ví dụ, bash
's $PIPESTATUS
mảng, nhưng điều này không phải luôn luôn đúng).