Giới thiệu
Lệnh uniq
trong Linux là một tiện ích dòng lệnh báo cáo hoặc lọc ra các dòng lặp lại trong một tệp.
Nói một cách dễ hiểu, uniq là công cụ giúp phát hiện các dòng trùng lặp liền kề và đồng thời xóa các dòng trùng lặp. uniq lọc ra các dòng kết hợp liền kề từ tệp đầu vào (được yêu cầu làm đối số) và ghi dữ liệu đã lọc vào tệp đầu ra.
Cú pháp câu lệnh uniq
Chú thích tham số lệnh uniq:
[OPTION]
: Là các tùy chọn lệnhuniq
.INPUT
: Là nội dung tệp đầu vào cho các dòng lặp lại cần được lọc ra và nếu INPUT không được chỉ định thì uniq sẽ đọc từ đầu vào chuẩn.OUTPUT
: Là tệp đầu ra trong đó bạn có thể lưu trữ đầu ra đã lọc được tạo bởi lệnh uniq và như trong trường hợp INPUT nếu OUTPUT không được chỉ định thì uniq sẽ ghi vào đầu ra chuẩn.
Một số ví dụ lệnh uniq
Để kiểm tra phiên bản uniq chúng ta sử dụng câu lệnh sau:
Để nhận thông tin trợ giúp lệnh uniq chúng ta sử dụng câu lệnh sau:
Bây giờ, chúng ta hãy tìm hiểu việc sử dụng điều này với sự trợ giúp của một ví dụ. Giả sử chúng ta có một tệp văn bản có tên info.txt chứa các dòng lặp lại cần được bỏ qua. Điều này có thể được thực hiện đơn giản với uniq.
Như chúng ta có thể thấy rằng tệp ở trên chứa nhiều dòng trùng lặp. Bây giờ, chúng ta hãy sử dụng lệnh uniq để loại bỏ chúng bằng lệnh sau:
Chúng ta có thể thấy rằng chỉ sử dụng tên của tệp đầu vào trong ví dụ uniq ở trên và vì chúng tôi không sử dụng bất kỳ tệp đầu ra nào để lưu trữ đầu ra đã tạo, lệnh uniq hiển thị đầu ra đã lọc trên đầu ra chuẩn với tất cả các bản sao dòng đã bị xóa.
Các tùy chọn lệnh uniq
-c
: Nó cho biết số lần một dòng được lặp lại bằng cách hiển thị một số dưới dạng tiền tố với dòng.-d
: Nó chỉ in các dòng lặp lại chứ không in các dòng không lặp lại.-D
: Nó in tất cả các dòng trùng lặp và METHOD có thể là bất kỳ dòng nào sau đây:- none: Không phân tách các dòng trùng lặp. Đây là mặc định.
- prepend: Chèn một dòng trống trước mỗi tập hợp các dòng trùng lặp.
- separate: Chèn một dòng trống giữa mỗi tập hợp các dòng trùng lặp.
-f N
: Nó cho phép bạn bỏ qua N trường (một trường là một nhóm các ký tự, được phân cách bằng khoảng trắng) của một dòng trước khi xác định tính duy nhất của một dòng.-i
: Theo mặc định, các phép so sánh được thực hiện có phân biệt chữ hoa chữ thường nhưng với tùy chọn này có thể thực hiện các phép so sánh không phân biệt chữ hoa chữ thường.-s N
: Nó không so sánh N ký tự đầu tiên của mỗi dòng trong khi xác định tính duy nhất. Điều này giống như tùy chọn -f, nhưng nó bỏ qua các ký tự riêng lẻ thay vì các trường.-u
: Nó cho phép bạn chỉ in các dòng duy nhất.-z
: Nó sẽ tạo một dòng kết thúc bằng 0 byte (NULL), thay vì một dòng mới.-w N
: Nó chỉ so sánh N ký tự trong một dòng.--help
: Nó hiển thị thông báo trợ giúp và thoát ra.--version
: Nó hiển thị thông tin phiên bản và thoát.
Ví dụ minh họa lệnh uniq với các tùy chọn
Sử dụng lệnh uniq với tùy chọn -c: Cho biết số lần một dòng lệnh lập lại.
Sử dụng lệnh uniq với tùy chọn -d: Chỉ in các dòng lập lại
Sử dụng lệnh uniq với tùy chọn -D: Chỉ in các dòng trùng lặp nhưng không in một dòng cho mỗi nhóm.
Sử dụng lệnh uniq với tùy chọn -u: Chỉ in các dòng duy nhất trong tệp.
Sử dụng lệnh uniq với tùy chọn -f N: Như đã nói ở trên, điều này cho phép bỏ qua N trường trong khi so sánh tính duy nhất của các dòng. Tùy chọn này hữu ích khi các dòng được đánh số như thể hiện trong ví dụ bên dưới:
Sử dụng lệnh uniq với tùy chọn -i: được sử dụng để làm cho phép so sánh không phân biệt chữ hoa chữ thường.
Kết luận
uniq
là một công cụ khá độc đáo mà Linux cung cấp. Với rất nhiều tính năng mạnh mẽ, nó có thể hữu ích theo nhiều cách. Qua bài hướng dẫn này chúng ta đã biết danh sách một số tùy chọn và ý nghĩa của chúng.
Tính năng đang được phát triển