Là một công cụ quen thuộc trong tay sysadmin, công cụ sort giúp chúng ta dễ dàng sắp xếp các dữ liệu dạng text theo nhiều cách mà không làm thay đổi files gốc
Công cụ sort được sử dụng trong Linux để in output ra theo một thứ tự định trước. Câu lệnh này xử lí dữ liệu của chúng ta và sắp xếp chúng theo một cách định trước giúp chúng ta đọc thông tin hiệu quả hơn. Điều này hữu ích khi cần xử lí một lượng lớn dữ liệu và cần phải sắp xếp tăng/giảm theo bảng chữ cái hoặc số
Khi sắp xếp theo bảng chữ cái, câu lệnh sẽ kiểm tra thứ tự đầu tiên của mỗi dòng và sắp xếp chúng theo đúng thứ tự
Khi sắp xếp theo số, câu lệnh kiểm tra số ở mỗi dòng và sắp xếp các dòng theo thứ tự tăng hoặc giảm theo ý muốn của chúng ta
Tóm lại, sort là một câu lệnh hữu ích khi bạn cần đọc một file rất lớn hoặc danh sách chưa được sắp xếp đúng cách khiến bạn tốn nhiều thời gian để đọc chúng. Để xử lí vấn đề này, chúng ta sử dụng câu lệnh sort để sắp xếp nội dung của files hoặc danh ssch. Câu lệnh sort xử lí data dưới định dạng ASCII. Có một số tuỳ chọn hữu ích cho câu lệnh sort có nhằm thay đổi hành động của câu lệnh. Một số ví dụ được trình bày dưới đây, đồng thời với cú pháp của câu lệnh này
Cú pháp câu lệnh
sort [OPTION]... [FILE]... sort [OPTION]... --files0-from=F
Ví dụ
Ở ví dụ đầu tiên, chúng ta sử dụng câu lệnh sort mà không có tuỳ chọn đi kèm. Nó sẽ sắp xếp các dòng theo bảng chữ cái bằng cách sắp xếp chữ cái đầu tiên của mỗi dòng. Lưu ý, với cùng một chữ cái thì dòng bắt đầu bằng chữ thường sẽ xếp trên những dòng bắt đầu bằng chữ hoa
cat test.txt Dr.B.R.Ambedkar MahatmaJyotibaPhule Budhha ChatrapatiShahuMaharaj budhha Ramaai
sort test.txt budhha Budhha ChatrapatiShahuMaharaj Dr.B.R.Ambedkar MahatmaJyotibaPhule Ramaai
Để đảo chiều sắp xếp các bạn thêm tham số -r
sort -r test.txt Ramaai MahatmaJyotibaPhule Dr.B.R.Ambedkar ChatrapatiShahuMaharaj Budhha budhha
Để sắp xếp theo chữ số các bạn dùng tham số -n
cat numeric.txt 14 04 34 1891 938 378 2356
sort -n numeric.txt 04 14 34 378 938 1891 2356
sort -nr numeric.txt 2356 1891 938 378 34 14 04
Bạn có thể sắp xếp theo cột nếu file có nhiều cột. Sử dụng tham số -k kèm với số cột trong files, lưu ý ở dưới đây, nếu chúng tôi chỉ dùng tham số -k thì nó sẽ sắp xếp cột 2 dựa theo chữ số đều tiên của cột chứ không phải giá trị của toàn bộ số trong cột, nếu bạn muốn làm điều này thì bạn thêm tham số -n vào nữa nhé
cat file2.txt Advika 1 Amit 30 Ajit 28 Abhi 278 Chirag 2
sort -k 2 file2.txt Advika 1 Chirag 2 Abhi 278 Ajit 28 Amit 30
Một ví dụ rõ hơn kết hợp với tham số -nk
ls -l total 0 -rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt -rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt -rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt -rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
ls -l | sort -nk 5 total 0 -rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt -rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt -rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt -rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
Ngoài ra bạn có thể thêm tham số -u để xoá bỏ các dòng bị lặp lại
cat test.txt Dr.B.R.Ambedkar MahatmaJyotibaPhule ChatrapatiShahuMaharaj Dr.B.R.Ambedkar budhha Ramaai Dr.B.R.Ambedkar
sort test.txt budhha ChatrapatiShahuMaharaj Dr.B.R.Ambedkar Dr.B.R.Ambedkar Dr.B.R.Ambedkar MahatmaJyotibaPhule Ramaai
sort -u test.txt budhha ChatrapatiShahuMaharaj Dr.B.R.Ambedkar MahatmaJyotibaPhule Ramaai
Một tuỳ chọn thú vị là bạn có thể kiểm tra file này được sắp xếp hay chưa, bằng cách sử dụng tham số -c. Nếu dòng đó đã được sắp xếp rồi thì bạn sẽ không nhận được output gì hết, sort sẽ check dòng tiếp theo nếu nó chưa được sắp thì sẽ in ra thông báo cho bạn. Chẳng hạn như trong ví dụ dưới đây
cat test.txt Dr.B.R.Ambedkar MahatmaJyotibaPhule ChatrapatiShahuMaharaj budhha Ramaai
sort test.txt budhha ChatrapatiShahuMaharaj Dr.B.R.Ambedkar MahatmaJyotibaPhule Ramaai
sort -c test.txt sort: test.txt:3: disorder: ChatrapatiShahuMaharaj
Bạn còn có thể sắp xếp các tháng trong files với tham số -M
cat months.txt February December January July
sort -M months.txt January February July December
sort -Mr months.txt December July February January
Bạn cũng có thể cho sort nhiều files một lúc với tham số -n
cat test.txt numeric.txt Dr.B.R.Ambedkar MahatmaJyotibaPhule ChatrapatiShahuMaharaj budhha Ramaai 14 04 34 1891 938 378 2356
sort test.txt -n numeric.txt budhha ChatrapatiShahuMaharaj Dr.B.R.Ambedkar MahatmaJyotibaPhule Ramaai 04 14 34 378 938 1891 2356
Bạn cũng có thể lưu lại kết quả dùng một trong những cách dưới đây
sort test.txt > sortfile sort -o sortfile test.txt
Blog VPS GPU
Giá thuê VPS GPU treo game 2023: Hướng dẫn thuê và cài đặt chi tiết
Bạn là một game thủ đam mê, luôn tìm kiếm trải nghiệm chơi game tối [...]
Blog Cloud VPS VPS GPU
Vì sao nên thuê VPS GPU tại Cloudzone
Trong vô số những nhà cung cấp dịch vụ thuê VPS GPU trên thị trường, [...]
Blog Cloud VPS VPS GPU
Giải đáp những thắc mắc về dịch vụ thuê VPS có GPU
Bạn đang tìm kiếm một giải pháp VPS mạnh mẽ và hiệu suất cao để [...]
Blog Cloud VPS
Bảng giá thuê VPS GPU mới nhất năm 2023
Trong thế giới công nghệ ngày nay, VPS (Virtual Private Server) có GPU đóng vai [...]
Cloud VPS Blog
VPS GPU: Đỉnh cao hiệu suất với lợi ích & ứng dụng vượt trội
Trong thế giới công nghệ đầy cạnh tranh hiện nay, việc nâng cao hiệu suất [...]
Cloud VPS
VPS có GPU và sức mạnh xử lý đồ họa, phân tích dữ liệu của nó
VPS có GPU là lựa chọn tuyệt vời cho việc xử lý đồ họa cao [...]