Lệnh uniq trên Linux là lệnh giúp lọc và xử lý các dòng trùng lặp trong file văn bản, thường được dùng cùng sort để phân tích dữ liệu hiệu quả hơn. Bài viết này sẽ giúp bạn hiểu rõ lệnh uniq là gì, cú pháp sử dụng, và cách áp dụng trong thực tế. Mình sẽ hướng dẫn chi tiết 10 ví dụ phổ biến như xóa dòng trùng, đếm số lần lặp, lọc dòng duy nhất hay tùy biến so sánh bằng -f, -s, -w. C.
Điểm chính cần nắm
- Lệnh uniq trên Linux là gì?: Giới thiệu tổng quan về lệnh
uniq, công dụng chính và cách hoạt động trong Linux. - Cú pháp của lệnh uniq: Trình bày cú pháp chuẩn của
uniqvà các tùy chọn phổ biến. - 10 ví dụ về lệnh uniq trên Linux chi tiết: Tổng hợp các ví dụ cụ thể minh họa cách sử dụng
uniqtrong nhiều tình huống thực tế. - Vietnix – Giải pháp lưu trữ tối ưu cho website nhanh, ổn định và an toàn: Giới thiệu dịch vụ hosting tốc độ cao của Vietnix với hỗ trợ 24/7 và hệ thống máy chủ hiện đại.
- FAQ: Giải đáp những câu hỏi thường gặp liên quan đến lệnh
uniqtrên Linux.
Lệnh uniq trên Linux là gì?
Lệnh uniq trên Linux là công cụ dòng lệnh dùng để phát hiện và loại bỏ các dòng trùng lặp liền kề trong file văn bản. Lệnh này thường được sử dụng để lọc dữ liệu đầu vào, hiển thị các dòng duy nhất hoặc chỉ những dòng bị lặp lại. Để lệnh uniq hoạt động chính xác, dữ liệu đầu vào cần được sắp xếp trước để các dòng trùng nhau nằm sát nhau.
![Tất tần tật về lệnh uniq trên Linux [year] 18 Lệnh uniq trên Linux dùng để phát hiện và loại bỏ các dòng trùng lặp liền kề trong file văn bản](https://image.vietnix.vn/wp-content/uploads/2025/05/Lenh-uniq-la-gi.png)
Cú pháp của lệnh uniq
Cú pháp cơ bản:
uniq [OPTIONS] [INPUT_FILE] [OUTPUT_FILE]]Giải thích:
OPTIONS: Các tuỳ chọn để thay đổi cách hoạt động củauniq(ví dụ-c,-d,-u…).: File văn bản chứa nội dung cần xử lý. Nếu không chỉ định,INPUT_FILEuniqđọc từ stdin (bàn phím hoặc đầu ra của lệnh khác).: File lưu kết quả đầu ra. Nếu không chỉ định, kết quả được hiển thị ra stdout (màn hình terminal).OUTPUT_FILE
Các tùy chọn phổ biến của lệnh uniq
| Tuỳ chọn | Mô tả |
|---|---|
-c, --count | Hiển thị số lần xuất hiện của mỗi dòng. |
-d, --repeated | Chỉ in ra các dòng bị lặp lại (bỏ qua dòng duy nhất). |
-u, --unique | Chỉ in ra các dòng xuất hiện đúng một lần (bỏ qua dòng trùng). |
-i, --ignore-case | So sánh không phân biệt chữ hoa – chữ thường. |
-f, --skip-fields=N | Bỏ qua N trường đầu tiên khi so sánh (trường phân cách bằng khoảng trắng). |
-s, --skip-chars=N | Bỏ qua N ký tự đầu tiên khi so sánh dòng. |
-w N | Chỉ so sánh N ký tự đầu tiên của mỗi dòng. |
-z | Dùng ký tự NULL (\0) làm ký tự kết thúc dòng thay vì newline (hữu ích khi xử lý với xargs -0). |
10 ví dụ về lệnh uniq trên Linux chi tiết
- Xóa dòng trùng lặp
- Đếm số lần trùng lặp
- Hiển thị các dòng duy nhất (không trùng)
- Hiển thị tất cả các dòng trùng lặp
- Hiển thị dòng bị trùng lặp (mỗi dòng trùng chỉ in một lần)
- Bỏ qua N trường đầu dòng với -f
- Bỏ qua N ký tự đầu dòng với -s
- Giới hạn so sánh theo N ký tự đầu dòng với -w
- So sánh không phân biệt chữ hoa với chữ thường
- Output bằng NULL (-z)
Giả sử, hiện tại mình đang có file vietnix.txt với nội dung như sau:
Vietnix cung cấp dịch vụ hosting chất lượng cao.
Vietnix cung cấp dịch vụ hosting chất lượng cao.
Vietnix hỗ trợ khách hàng 24/7.
Vietnix hỗ trợ khách hàng 24/7.
Vietnix hỗ trợ khách hàng 24/7.
Dịch vụ VPS tại Vietnix rất ổn định.
Dịch vụ VPS tại Vietnix rất ổn định.
Dịch vụ VPS tại Vietnix rất ổn định.
Dịch vụ VPS tại Vietnix rất ổn định.![Tất tần tật về lệnh uniq trên Linux [year] 19 File vietnix.txt để làm ví dụ](https://image.vietnix.vn/wp-content/uploads/2025/05/File-vietnix.txt-de-lam-vi-du.png)
Xóa dòng trùng lặp
uniq vietnix.txtGiải thích: Loại bỏ các dòng trùng lặp liên tiếp trong file vietnix.txt. Các dòng không liền nhau sẽ không được loại bỏ trừ khi dùng thêm sort.
![Tất tần tật về lệnh uniq trên Linux [year] 20 Xóa dòng trùng lặp](https://image.vietnix.vn/wp-content/uploads/2025/05/Xoa-dong-trung-lap.png)
Đếm số lần trùng lặp
uniq -c vietnix.txtGiải thích: Hiển thị số lần mỗi dòng xuất hiện trong file, giúp thống kê nhanh số lượng dòng trùng.
![Tất tần tật về lệnh uniq trên Linux [year] 21 Đếm số lần trùng lặp](https://image.vietnix.vn/wp-content/uploads/2025/05/Dem-so-lan-trung-lap.png)
Khi dùng lệnh uniq -c để đếm số lần trùng lặp, kết quả mặc định sẽ có dạng:
2 Vietnix cung cấp dịch vụ hosting chất lượng cao.
3 Vietnix hỗ trợ khách hàng 24/7.
4 Dịch vụ VPS tại Vietnix rất ổn định.Nếu muốn tùy biến kết quả để chuyển thành dạng nội dung, số lần lặp — ví dụ:
Vietnix cung cấp dịch vụ hosting chất lượng cao., 2
Vietnix hỗ trợ khách hàng 24/7., 3
Dịch vụ VPS tại Vietnix rất ổn định., 4Bạn hoàn toàn có thể kết hợp các lệnh sort, uniq, và awk như sau:
sort vietnix.txt | uniq -c | awk '{count=$1; $1=""; sub(/^ +/, ""); print $0 ", " count}'Hiển thị các dòng duy nhất (không trùng)
uniq -u vietnix.txtGiải thích: In ra những dòng chỉ xuất hiện một lần, giúp lọc ra nội dung độc đáo.
![Tất tần tật về lệnh uniq trên Linux [year] 22 Hiển thị các dòng duy nhất (không trùng)](https://image.vietnix.vn/wp-content/uploads/2025/05/Hien-thi-cac-dong-duy-nhat-khong-trung.png)
Bởi hiện tại file vietnix.txt hoàn toàn không có dòng nào chỉ xuất hiện 1 lần nên lệnh uniq sẽ không in gì ra màn hình.
Hiển thị tất cả các dòng trùng lặp
uniq -D vietnix.txtGiải thích: In tất cả các dòng trùng lặp, không chỉ một dòng đại diện.
![Tất tần tật về lệnh uniq trên Linux [year] 23 Hiển thị tất cả các dòng trùng lặp](https://image.vietnix.vn/wp-content/uploads/2025/05/Hien-thi-tat-ca-cac-dong-trung-lap.png)
Hiển thị dòng bị trùng lặp (mỗi dòng trùng chỉ in một lần)
uniq -d vietnix.txtGiải thích: In ra các dòng bị trùng xuất hiện liên tiếp, mỗi dòng chỉ được in một lần.
![Tất tần tật về lệnh uniq trên Linux [year] 24 Hiển thị dòng bị trùng lặp (mỗi dòng trùng chỉ in một lần)](https://image.vietnix.vn/wp-content/uploads/2025/05/Hien-thi-dong-bi-trung-lap-moi-dong-trung-chi-in-mot-lan.png)
Bỏ qua N trường đầu dòng với -f
Giả sử file vietnix_numbered.txt có nội dung:
1 Vietnix cung cấp dịch vụ hosting chất lượng cao.
2 Vietnix cung cấp dịch vụ hosting chất lượng cao.
3 Vietnix hỗ trợ khách hàng 24/7.
4 Vietnix hỗ trợ khách hàng 24/7.uniq -f 1 vietnix_numbered.txtGiải thích: Bỏ qua trường số thứ tự đầu dòng khi so sánh, giúp loại bỏ dòng trùng dù số thứ tự khác nhau.
![Tất tần tật về lệnh uniq trên Linux [year] 25 Bỏ qua N trường đầu dòng với -f](https://image.vietnix.vn/wp-content/uploads/2025/05/Bo-qua-N-truong-dau-dong-voi-f.png)
Bỏ qua N ký tự đầu dòng với -s
Giả sử file vietnix_chars.txt có nội dung:
***Vietnix cung cấp dịch vụ hosting.
###Vietnix cung cấp dịch vụ hosting.
@@@Dịch vụ VPS tại Vietnix ổn định.
%%%Dịch vụ VPS tại Vietnix ổn định.uniq -s 3 vietnix_chars.txtGiải thích: Bỏ qua 3 ký tự đầu dòng (***, ###, …), giúp so sánh chính xác phần nội dung sau các ký tự đặc biệt.
![Tất tần tật về lệnh uniq trên Linux [year] 26 Bỏ qua N ký tự đầu dòng với -s](https://image.vietnix.vn/wp-content/uploads/2025/05/Bo-qua-N-ky-tu-dau-dong-voi-s.png)
Giới hạn so sánh theo N ký tự đầu dòng với -w
Giả sử file vietnix_short.txt có nội dung:
Vietnix cung cấp dịch vụ hosting.
Vietnix hỗ trợ khách hàng 24/7.
Vietnix dịch vụ VPS ổn định.uniq -w 7 vietnix_short.txtGiải thích: Chỉ so sánh 7 ký tự đầu dòng, các dòng bắt đầu giống nhau trong 7 ký tự sẽ được coi là trùng.
![Tất tần tật về lệnh uniq trên Linux [year] 27 Giới hạn so sánh theo N ký tự đầu dòng với -w](https://image.vietnix.vn/wp-content/uploads/2025/05/Gioi-han-so-sanh-theo-N-ky-tu-dau-dong-voi-w.png)
So sánh không phân biệt chữ hoa với chữ thường
Giả sử file vietnix_case.txt có nội dung:
VIETNIX cung cấp hosting.
vietnix cung cấp hosting.
Vietnix hỗ trợ khách hàng.uniq -i vietnix_case.txtGiải thích: So sánh không phân biệt chữ hoa và thường, giúp loại bỏ các dòng giống nhau nhưng khác biệt về chữ hoa/thường.
![Tất tần tật về lệnh uniq trên Linux [year] 28 So sánh không phân biệt chữ hoa với chữ thường](https://image.vietnix.vn/wp-content/uploads/2025/05/So-sanh-khong-phan-biet-chu-hoa-voi-chu-thuong.png)
Output bằng NULL (-z)
uniq -z vietnix.txtGiải thích: Xuất kết quả với dấu kết thúc dòng là ký tự NULL (\0), thường dùng trong script để xử lý dữ liệu an toàn hơn với các dòng chứa ký tự đặc biệt.
Vietnix – Giải pháp lưu trữ tối ưu cho website nhanh, ổn định và an toàn
Vietnix cung cấp các dịch vụ hosting và VPS chất lượng cao, giúp website vận hành với tốc độ nhanh, hiệu suất ổn định và bảo mật vững chắc. Với đội ngũ kỹ thuật nhiều kinh nghiệm cùng hệ thống máy chủ hiện đại được đặt tại datacenter đạt chuẩn quốc tế, Vietnix cam kết mang đến trải nghiệm lưu trữ mượt mà và an toàn cho mọi khách hàng.
Bên cạnh đó, Vietnix còn nổi bật với chính sách hỗ trợ kỹ thuật 24/7, luôn sẵn sàng đồng hành cùng bạn trong suốt quá trình vận hành website, từ cá nhân, doanh nghiệp nhỏ đến hệ thống lớn cần khả năng mở rộng linh hoạt.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
Câu hỏi thường gặp
Tại sao uniq không hoạt động đúng khi dữ liệu không được sắp xếp?
Vì uniq chỉ loại bỏ những dòng trùng nhau liền kề. Nếu dữ liệu không được sort, các dòng trùng nằm rải rác sẽ không bị phát hiện.
Có thể dùng uniq để lọc dòng trong file CSV không?
Có, nếu chỉ thao tác với từng dòng nguyên vẹn hoặc dùng cut để chọn cột trước khi uniq. Tuy nhiên, cần chú ý định dạng phức tạp và dấu phân cách.
Cách kết hợp cut, sort, và uniq để lọc thông tin cụ thể?
Dùng cut để lấy cột dữ liệu, sort để gom nhóm, rồi uniq để lọc trùng hoặc đếm (`cut -d’,’ -f1 file.csv
uniq có xử lý được file lớn hàng triệu dòng không?
uniq hoạt động hiệu quả nếu dữ liệu đã được sort. Tuy nhiên, với file rất lớn, nên dùng sort --parallel và xử lý theo từng phần nếu cần.
Có cách nào lọc dòng trùng không phân biệt Unicode (ví dụ tiếng Việt có dấu và không dấu)?
Mặc định uniq không xử lý Unicode chuẩn hóa. Có thể cần dùng iconv, sed hoặc script xử lý trước khi uniq.
Làm sao kiểm tra dòng trùng ở cuối file khi dòng cuối không có newline?
Dòng cuối thiếu newline sẽ được xem là khác dòng. Cần đảm bảo file có newline đầy đủ hoặc dùng sed -e '$a\' để thêm.
Lời kết
Khi sử dụng thành thạo lệnh uniq, bạn có thể xử lý dữ liệu văn bản nhanh chóng, tối ưu quy trình phân tích log, lọc báo cáo hay làm sạch dữ liệu đầu vào. Nếu bạn có bất kỳ câu hỏi nào về lệnh uniq, cú pháp nâng cao, hoặc các ví dụ chưa rõ trong bài, đừng ngần ngại để lại bình luận. Mình sẽ giải đáp cụ thể và chi tiết nhất có thể. Hoặc nếu bạn đang tìm kiếm giải pháp lưu trữ hiệu quả, đừng bỏ qua phần giới thiệu Vietnix bên dưới nhé.
Mọi người cũng xem:





![Tất tần tật về lệnh uniq trên Linux [year] 17 Speed optimizer 2](https://image.vietnix.vn/wp-content/uploads/2025/08/Speed-optimizer-2.webp)










