Lệnh sắp xếp Linux là gì? Chức năng của lệnh này?

Trong thế giới của hệ điều hành Linux, việc quản lý và xử lý dữ liệu là một trong những nhiệm vụ quan trọng và thường xuyên được thực hiện. Lệnh sắp xếp (sort) trong Linux là một công cụ mạnh mẽ giúp người dùng tổ chức và sắp xếp các dòng dữ liệu theo nhiều tiêu chí khác nhau, từ chữ cái, số đến ngày tháng.

Không chỉ đơn thuần là sắp xếp, lệnh này còn hỗ trợ nhiều tùy chọn linh hoạt, cho phép người dùng tối ưu hóa công việc xử lý dữ liệu một cách nhanh chóng và hiệu quả. Vậy cụ thể, lệnh sắp xếp trong Linux là gì và chức năng của nó ra sao? Hãy cùng tìm hiểu chi tiết trong bài viết này.

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 sortmà 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 -ctù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 sorttì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 findlệ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 sortvà sử dụng --files0-from=tùy chọn trong lệnh sort

Chỉ định -print0tùy chọn để findkết thúc tên tệp bằng NULký 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.

Leave a Reply