1. Lệnh sắp xếp Linux là gì?
Lệnh sắp xếp trong Linux, được gọi là sort
, là một công cụ dòng lệnh dùng để sắp xếp các dòng dữ liệu trong một tệp hoặc đầu vào chuẩn (standard input). Lệnh này có thể sắp xếp dữ liệu theo nhiều tiêu chí khác nhau, chẳng hạn như theo thứ tự chữ cái, thứ tự số, hoặc theo ngày tháng. Kết quả sắp xếp có thể được hiển thị trên màn hình hoặc lưu vào tệp khác.
2. Cú pháp sắp xếp Linux?
sort [options] filename
Chạy lệnh sort
mà không [options]
xuất ra nội dung của tệp và áp dụng các quy tắc sắp xếp mặc định cho ngôn ngữ hiện tại.
Các quy tắc chính là:
- Các dòng bắt đầu bằng số sẽ đi trước các dòng bắt đầu bằng chữ cái , được sắp xếp theo thứ tự tăng dần (1-10).
- Các dòng bắt đầu bằng chữ cái được sắp xếp theo thứ tự bảng chữ cái tăng dần (AZ).
Ví dụ, tệp sau có nhiều dòng ngẫu nhiên:
Chạy sort để sắp xếp nội dung của tệp theo cách mặc định:
Ví dụ trên cho thấy lệnh sort sắp xếp các dòng theo mặc định khi không có tùy chọn nào được chỉ định.
3. Tùy chọn sắp xếp Linux?
Chỉ định tùy chọn để thay đổi các quy tắc sort sắp xếp lệnh. Các tùy chọn được sử dụng nhiều nhất được liệt kê trong bảng dưới đây:
Tùy chọn | Mô tả | Ví dụ sử dụng |
---|---|---|
-n |
Sắp xếp theo số (numeric). | sort -n numbers.txt |
-r |
Sắp xếp theo thứ tự ngược (reverse). | sort -r file.txt |
-k |
Chỉ định cột để sắp xếp. | sort -k2 file.txt |
-t |
Chỉ định ký tự phân tách (delimiter). | sort -t: -k1 file.txt |
-u |
Chỉ giữ lại các dòng duy nhất (unique). | sort -u file.txt |
-b |
Bỏ qua khoảng trắng ở đầu dòng. | sort -b file.txt |
-f |
Bỏ qua sự khác biệt giữa chữ hoa và chữ thường. | sort -f file.txt |
-o |
Chỉ định tệp đầu ra để lưu kết quả. | sort -o sorted.txt file.txt |
-M |
Sắp xếp theo tên tháng. | sort -M file.txt |
-d |
Sắp xếp chỉ dùng các ký tự chữ và số. | sort -d file.txt |
-C |
Kiểm tra xem tệp đã được sắp xếp chưa. | sort -C file.txt |
--version |
Hiển thị thông tin phiên bản. | sort --version |
3. Ví dụ sắp xếp Linux?
Ví dụ 1: Lưu đầu ra vào tệp:
sort -o sorted.txt default.txt
Chạy lệnh cat sẽ xuất ra nội dung của tệp mới.
Một cách khác để lưu sort đầu ra của lệnh là chuyển hướng đầu ra vào một tệp:
sort default.txt > sorted.txt
Ví dụ 2: Kiểm tra sắp xếp trong tệp:
Chỉ định -c
tùy chọn để kiểm tra xem nội dung của tệp đã được sắp xếp chưa. Nếu nội dung đã được sắp xếp, sẽ không có đầu ra nào từ lệnh sort
Tuy nhiên, khi sort
tìm thấy một dòng chưa được sắp xếp, nó sẽ đưa ra thông báo cho biết dòng đầu tiên không đúng vị trí.
sort -c default.txt
Ví dụ 3: Sắp xếp nhiều tệp
. Liệt kê tên tệp dưới dạng đối số được phân tách bằng dấu cách.
Sắp xếp nhiều tệp cùng lúc bằng cách chỉ định tên tệp tương ứng làm đối số, phân tách bằng khoảng trắng. Nội dung của các tệp được nối lại với nhau, sắp xếp và in ra ở đầu ra chuẩn.
Ví dụ:
sort default1.txt default2.txt
Lệnh này nối, sắp xếp và in nội dung của cả hai tệp.
2. Chuyển find
lệnh đầu ra tới sort
.
Một cách khác để sắp xếp nhiều tệp cùng lúc là chuyển đầu ra của lệnh tìm kiếm đến sort
và sử dụng --files0-from=
tùy chọn trong lệnh sort
Chỉ định -print0
tùy chọn để find
kết thúc tên tệp bằng NUL
ký tự và đảm bảo chương trình đọc đúng danh sách tệp.
Ví dụ:
find -name “default?.txt” -print0 | sort –files0-from=-
Ví dụ trên sẽ sắp xếp các tệp default1.txt và default2.txt.