Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Tất tần tật về lệnh uniq trên Linux 2025

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:19/05/2025
Lượt xem

Đánh giá

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 uniq và 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 uniq trong 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 uniq trê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.

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
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

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ủa uniq (ví dụ -c, -d, -u…).
  • INPUT_FILE: File văn bản chứa nội dung cần xử lý. Nếu không chỉ định, uniq đọc từ stdin (bàn phím hoặc đầu ra của lệnh khác).
  • OUTPUT_FILE: 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).

Các tùy chọn phổ biến của lệnh uniq

Tuỳ chọnMô tả
-c, --countHiển thị số lần xuất hiện của mỗi dòng.
-d, --repeatedChỉ in ra các dòng bị lặp lại (bỏ qua dòng duy nhất).
-u, --uniqueChỉ in ra các dòng xuất hiện đúng một lần (bỏ qua dòng trùng).
-i, --ignore-caseSo sánh không phân biệt chữ hoa – chữ thường.
-f, --skip-fields=NBỏ 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=NBỏ qua N ký tự đầu tiên khi so sánh dòng.
-w NChỉ so sánh N ký tự đầu tiên của mỗi dòng.
-zDù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).

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.
File vietnix.txt để làm ví dụ
File vietnix.txt để làm ví dụ

Xóa dòng trùng lặp

uniq vietnix.txt

Giả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.

Xóa dòng trùng lặp
Xóa dòng trùng lặp

Đếm số lần trùng lặp

uniq -c vietnix.txt

Giả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.

Đếm số lần trùng lặp
Đếm số lần trùng lặp

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., 4

Bạ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.txt

Giả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.

Hiển thị các dòng duy nhất (không trùng)
Hiển thị các dòng duy nhất (không trùng)

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.txt

Giả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.

Hiển thị tất cả các dòng trùng lặp
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)

uniq -d vietnix.txt

Giả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.

Hiển thị dòng bị trùng lặp (mỗi dòng trùng chỉ in một lần)
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

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.txt

Giả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.

Bỏ qua N trường đầu dòng với -f
Bỏ qua N trường đầu dòng với -f

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.txt

Giả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.

Bỏ qua N ký tự đầu dòng với -s
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

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.txt

Giả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.

Giới hạn so sánh theo N ký tự đầu dòng với -w
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

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.txt

Giả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.

So sánh không phân biệt chữ hoa với chữ thường
So sánh không phân biệt chữ hoa với chữ thường

Output bằng NULL (-z)

uniq -z vietnix.txt

Giả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ụ hostingVPS 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 10, Quận Tân Bình, TP HCM.

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?

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:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi sinh nhật
Nhanh tay, số lượng có hạn!
17/05/2025 - 22/06/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG