Lệnh uniq trong linux với các ví dụ dễ hiểu

Lệnh uniq trong Linux giúp loại bỏ các dòng trùng lặp liền kề trong một file, rất hữu ích để làm sạch dữ liệu. Nó thường được sử dụng kết hợp với lệnh sort để đảm bảo các dòng trùng lặp được xếp cạnh nhau trước khi loại bỏ. Với uniq, bạn có thể dễ dàng tạo ra danh sách duy nhất từ dữ liệu có nhiều dòng lặp lại. Hãy thử sử dụng lệnh này để tối ưu hóa quy trình làm việc của bạn trên Linux nhé!

Lệnh uniq trong linux là gì?

Lệnh command uniq in linux là một công cụ dòng lệnh mạnh mẽ, giúp loại bỏ các dòng trùng lặp liền kề trong một tệp văn bản hoặc từ đầu vào chuẩn. Nó hoạt động bằng cách so sánh các dòng liên tiếp và chỉ giữ lại dòng đầu tiên của mỗi chuỗi các dòng giống hệt nhau, giúp dữ liệu trở nên gọn gàng hơn. Bạn có thể sử dụng command uniq in linux để làm sạch dữ liệu nhật ký, loại bỏ các mục trùng lặp trong danh sách, hoặc đơn giản là làm cho đầu ra dễ đọc hơn. Lệnh này rất hữu ích khi bạn muốn xử lý các tệp văn bản lớn và cần loại bỏ thông tin dư thừa một cách nhanh chóng và hiệu quả.

Tìm hiểu Mục đích và Cú pháp của Lệnh uniq

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh uniq trong Linux.

Lệnh uniq được dùng để loại bỏ các dòng trùng lặp từ một file hoặc luồng đầu vào.

Cú pháp cơ bản của lệnh uniq như sau:

uniq [OPTION]... [INPUT_FILE [OUTPUT_FILE]]

Dưới đây là giải thích chi tiết về các option:

  • -c: Thêm số lần xuất hiện vào đầu mỗi dòng
  • -d: Chỉ in ra các dòng bị trùng lặp
  • -u: Chỉ in ra các dòng duy nhất (không trùng lặp)
  • -i: Bỏ qua sự khác biệt về chữ hoa chữ thường khi so sánh các dòng
  • -f N: Bỏ qua N trường đầu tiên trên mỗi dòng
  • -s N: Bỏ qua N ký tự đầu tiên trên mỗi dòng

Hãy bắt đầu bằng cách tạo một file mẫu với một vài dòng trùng lặp:

echo -e "apple\norange\napple\nbanana\norange" > sample.txt

Ví dụ về output:

apple
orange
apple
banana
orange

Bây giờ, hãy sử dụng lệnh uniq để loại bỏ các dòng trùng lặp:

uniq sample.txt

Ví dụ về output:

apple
orange
banana

Trong ví dụ này, lệnh uniq đã loại bỏ các dòng trùng lặp "apple" và "orange" từ file đầu vào.

Loại Bỏ Các Dòng Trùng Lặp Khỏi Một File

Trong bước này, bạn sẽ học cách dùng lệnh uniq để loại bỏ các dòng trùng lặp từ một file.

Đầu tiên, hãy tạo một file mẫu với một vài dòng bị trùng lặp như sau:

echo -e "apple\norange\napple\nbanana\norange\napple" > sample.txt

Ví dụ về kết quả:

apple
orange
apple
banana
orange
apple

Để loại bỏ các dòng trùng lặp, chúng ta có thể sử dụng lệnh uniq như sau:

uniq sample.txt

Ví dụ về kết quả:

apple
orange
banana

Lệnh uniq so sánh các dòng liền kề và loại bỏ các dòng trùng lặp. Tuy nhiên, nó chỉ loại bỏ các dòng trùng lặp liên tiếp.

Nếu các dòng trùng lặp không nằm cạnh nhau, thì lệnh uniq sẽ không loại bỏ chúng.

Để loại bỏ tất cả các dòng trùng lặp, bất kể vị trí của chúng, ta dùng lệnh sort kết hợp với uniq.

sort sample.txt | uniq

Ví dụ về kết quả:

apple
banana
orange

Lệnh sort sắp xếp các dòng theo thứ tự bảng chữ cái, đảm bảo các dòng trùng lặp nằm cạnh nhau.

Sau đó, lệnh uniq có thể loại bỏ các dòng trùng lặp một cách dễ dàng.

Đếm Số Lần Xuất Hiện của Các Dòng Duy Nhất

Trong bước này, bạn sẽ học cách dùng lệnh uniq để đếm số lần xuất hiện của các dòng duy nhất trong một file.

Chúng ta hãy bắt đầu bằng việc tạo một file mẫu với một vài dòng bị trùng lặp nhé:

echo -e "apple\norange\napple\nbanana\norange\napple" > sample.txt

Ví dụ về kết quả:

apple
orange
apple
banana
orange
apple

Để đếm số lần xuất hiện của các dòng duy nhất, ta dùng tùy chọn -c với lệnh uniq:

uniq -c sample.txt

Ví dụ về kết quả:

   3 apple
   1 banana
   2 orange

Trong kết quả này, số đứng trước mỗi dòng thể hiện số lần dòng duy nhất đó xuất hiện.

Nếu bạn muốn sắp xếp kết quả theo số lượng, bạn có thể chuyển kết quả sang lệnh sort:

uniq -c sample.txt | sort -n

Ví dụ về kết quả:

   1 banana
   2 orange
   3 apple

Tùy chọn -n của lệnh sort sắp xếp kết quả theo số, dòng có số lượng thấp nhất sẽ đứng đầu.

Kết luận cho linux uniq command

Tóm lại, lệnh uniq là một công cụ nhỏ nhưng vô cùng hữu ích trong Linux, giúp bạn dễ dàng loại bỏ các dòng trùng lặp trong file. Nó đặc biệt hữu dụng khi bạn cần làm sạch dữ liệu hoặc chuẩn bị dữ liệu cho các bước xử lý tiếp theo. Với các tùy chọn linh hoạt, linux uniq command cho phép bạn tùy chỉnh cách so sánh và lọc các dòng, đáp ứng nhiều nhu cầu khác nhau. Hãy thử nghiệm với các tùy chọn khác nhau để hiểu rõ hơn về sức mạnh của nó. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng lệnh uniq trong Linux. Chúc bạn thành công trong việc xử lý dữ liệu của mình! Đừng ngần ngại khám phá thêm các lệnh khác để làm chủ hệ thống Linux nhé.

Last Updated : 14/10/2025