Hướng dẫn sử dụng lệnh sắp xếp Linux cho người mới bắt đầu (8 ví dụ)

theanh

Administrator
Nhân viên
Bạn đang tìm một tiện ích dòng lệnh để sắp xếp nội dung trong các tệp văn bản? Không cần tìm đâu xa, hãy đến với Sort, một công cụ được xây dựng riêng cho mục đích này. Trong hướng dẫn này, chúng ta sẽ thảo luận về lệnh này bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ ở đây đều đã được thử nghiệm trên máy Ubuntu 22.04 LTS.

Lệnh Sort của Linux​

Lệnh Sort cho phép bạn sắp xếp các dòng trong tệp văn bản. Sau đây là cú pháp của nó:
Mã:
sort [OPTION]... [FILE]...
Và đây là cách trang hướng dẫn của công cụ mô tả nó:
Mã:
Ghi phép nối được sắp xếp của tất cả FILE(s) vào đầu ra chuẩn.
Nếu không có FILE hoặc khi FILE là -, hãy đọc đầu vào chuẩn.
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách hoạt động của lệnh sort.

Câu hỏi 1. Làm thế nào để sử dụng lệnh sort?​

Giả sử bạn có một tệp chứa một số tên và bạn muốn sắp xếp chúng theo thứ tự bảng chữ cái. Sau đó, tất cả những gì bạn cần làm là truyền tên tệp làm đầu vào cho lệnh sort.

Ví dụ:
Mã:
sort file1
Vì vậy, nếu tệp 1 chứa các dòng sau:
Mã:
Zimbabwe
Serbia
Na Uy
Úc
Thì đầu ra sẽ là:
Mã:
Úc
Na Uy
Serbia
Zimbabwe
Đây là một ví dụ:


Câu hỏi 2. Làm thế nào để sort bỏ qua các khoảng trắng ở đầu?​

Tùy thuộc vào địa phương của bạn, bạn có thể thấy sort tạo ra kết quả không mong muốn khi các dòng chứa các khoảng trắng ở đầu. Ví dụ:

Giả sử tệp chứa các dòng sau:
Mã:
Zimbabwe
Serbia
Na Uy
Úc
Và bạn chạy lệnh sort, chỉ để thấy kết quả sau:
Mã:
Na Uy
Serbia
Úc
Zimbabwe
Điều này có vẻ bất ngờ, nhưng thực tế là các dòng chứa khoảng trắng đầu dòng được sắp xếp theo khoảng trắng, trong khi các dòng khác được sắp xếp theo thứ tự bảng chữ cái. Để đảm bảo lệnh Sort bỏ qua khoảng trắng đầu dòng, hãy sử dụng tùy chọn -b. Vì vậy, trong trường hợp đó, bạn sẽ nhận được kết quả sau:
Mã:
Úc
Na Uy
Serbia
Zimbabwe

Câu hỏi 3. Làm thế nào để sort bỏ qua trường hợp?​

Nếu một tệp có các từ/dòng bắt đầu bằng cả ký tự viết hoa và viết thường, thì lệnh sort sẽ hiển thị các ký tự viết hoa ở trên cùng. Tuy nhiên, nếu muốn, bạn có thể thay đổi hành vi này bằng tùy chọn dòng lệnh -f.

Ví dụ:
Mã:
sort -f file1

Câu hỏi 4. Làm thế nào để sắp xếp so sánh các số?​

Giả sử một tệp chỉ chứa các số và bạn muốn sắp xếp chúng. Sau đó, điều này có thể thực hiện được bằng cách sử dụng tùy chọn dòng lệnh -g.
Mã:
sort -g file1
Ví dụ, một tệp có nội dung sau:
Mã:
32000
2500
50000
54
Có thể sắp xếp bằng cách sử dụng lệnh sort để tạo ra các kết quả sau:
Mã:
54
2500
32000
50000

Câu 5. Làm thế nào để sắp xếp hoạt động với các giá trị số dễ đọc đối với con người?​

Trong trường hợp bạn muốn sắp xếp hoạt động với các giá trị số dễ đọc đối với con người như 1K, 2G, v.v., hãy sử dụng tùy chọn dòng lệnh -h.
Mã:
sort -h file1
Ví dụ, một tệp có các dòng sau:
Mã:
1M
2G
3K
Có thể được sắp xếp theo cách sau bằng cách sử dụng tùy chọn -h:
Mã:
3K
1M
2G

Câu 6. Làm thế nào để sort chỉ kiểm tra dữ liệu đầu vào đã sắp xếp?​

Trong trường hợp bạn muốn sort chỉ kiểm tra xem tệp đã được sắp xếp hay chưa, hãy sử dụng tùy chọn dòng lệnh -c.
Mã:
sort -c file1
Ví dụ, nếu file1 chứa các dòng sau:
Mã:
dhg
lkh
zyb
abd
Sau đó, sử dụng -c, sort sẽ tạo ra kết quả sau:
Mã:
sort: file1:4: disorder: abd
Vì vậy, bạn quan sát thấy công cụ không chỉ chỉ ra có sự rối loạn mà còn đưa ra vị trí của nó.

Câu hỏi 7. Làm thế nào để sắp xếp hợp nhất các tệp đã được sắp xếp?​

Nếu bạn muốn sắp xếp hợp nhất hai tệp đã được sắp xếp, hãy sử dụng tùy chọn dòng lệnh -m.
Mã:
sort -m file1 file2
Ví dụ, cả file1 và file2 đều chứa các dòng sau trong trường hợp của tôi:
Mã:
abd
dhg
lkh
zyb
Và đây là cách tùy chọn -m hợp nhất các tệp này:
Mã:
abd
abd
dhg
dhg
lkh
zyb
zyb

Câu hỏi 8. Làm thế nào để sắp xếp ghi kết quả vào một tệp?​

Theo mặc định, lệnh sort ghi đầu ra vào STDOUT. Tuy nhiên, bạn có thể buộc nó ghi vào một tệp nhất định bằng tùy chọn -o.

Ví dụ:
Mã:
sort file1 -o output.txt

Kết luận​

Lệnh Sort cung cấp rất nhiều tùy chọn. Chúng tôi đã thảo luận một số tùy chọn chính ở đây. Chúng tôi khuyên bạn nên thực hành những tùy chọn này trước, và sau khi hoàn tất, hãy đến trang hướng dẫn của lệnh để tìm hiểu thêm về lệnh này.
 
Back
Bên trên