Lệnh uniq trong Linux được sử dụng để loại bỏ các dòng trùng lặp liên tiếp hoặc không liên tiếp trong một tập tin văn bản hoặc đầu vào từ đường ống (pipe). Nó đọc từng dòng của file đầu vào hoặc đầu vào từ đường ống, loại bỏ các dòng giống nhau liên tiếp và chỉ in ra một lần duy nhất. Các dòng giống nhau không cần phải nằm cạnh nhau và không được xem là trùng lặp nếu chúng xuất hiện ở các vị trí khác nhau trong file hoặc đầu vào. Lệnh uniq rất hữu ích trong việc tìm kiếm các giá trị duy nhất trong một tập tin hoặc trong việc loại bỏ các dòng trùng lặp trong đầu ra của một lệnh đường ống.
Các tùy chọn của lệnh uniq:
- -c: Đếm số lần xuất hiện của mỗi dòng và hiển thị cùng với dòng đó.
- -d: Chỉ hiển thị các dòng xuất hiện nhiều hơn một lần.
- -u: Chỉ hiển thị các dòng xuất hiện chỉ một lần.
- -i: Không phân biệt chữ hoa/thường khi so sánh các dòng.
Ví dụ:
- Để loại bỏ các dòng trùng lặp trong file file.txt và hiển thị kết quả trên màn hình, ta có thể sử dụng lệnh:
uniq file.txt
- Để đếm số lần xuất hiện của mỗi dòng trong file và hiển thị cùng với dòng đó, ta có thể sử dụng lệnh:
uniq -c file.txt
- Để chỉ hiển thị các dòng xuất hiện chỉ một lần trong đầu vào từ đường ống, ta có thể sử dụng lệnh:
command | uniq -u
(thay “command” bằng lệnh đầu vào từ đường ống cần loại bỏ các dòng trùng lặp).