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