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.
Và đây là cách trang hướng dẫn của công cụ mô tả 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.
Ví dụ:
Vì vậy, nếu tệp 1 chứa các dòng sau:
Thì đầu ra sẽ là:
Đây là một ví dụ:
Giả sử tệp chứa các dòng sau:
Và bạn chạy lệnh sort, chỉ để thấy kết quả sau:
Đ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:
Ví dụ:
Ví dụ, một tệp có nội dung sau:
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:
Ví dụ, một tệp có các dòng sau:
Có thể được sắp xếp theo cách sau bằng cách sử dụng tùy chọn -h:
Ví dụ, nếu file1 chứa các dòng sau:
Sau đó, sử dụng -c, sort sẽ tạo ra kết quả sau:
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ó.
Ví dụ, cả file1 và file2 đều chứa các dòng sau trong trường hợp của tôi:
Và đây là cách tùy chọn -m hợp nhất các tệp này:
Ví dụ:
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]...
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.
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
Mã:
Zimbabwe
Serbia
Na Uy
Úc
Mã:
Úc
Na Uy
Serbia
Zimbabwe
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
Mã:
Na Uy
Serbia
Úc
Zimbabwe
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
Mã:
32000
2500
50000
54
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
Mã:
1M
2G
3K
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
Mã:
dhg
lkh
zyb
abd
Mã:
sort: file1:4: disorder: abd
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
Mã:
abd
dhg
lkh
zyb
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