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
Máy chủ vật lý
4 Lợi Ích Thiết Thực Mà Máy Chủ Vật Lý Mang Lại Cho Doanh Nghiệp
Trong thời đại chuyển đổi số mạnh mẽ như hiện nay, việc đầu tư vào [...]
Giải pháp
Cách Phòng Chống DDoS Cho Website, VPS, và Server Hiệu Quả
Các cuộc tấn công DDoS (Distributed Denial of Service) là một mối đe dọa lớn [...]
Chưa được phân loại portal portal cloudzone Về Portal
Mã đăng nhập Portal Cloudzone là gì? 3 cách lấy mã đăng nhập
Ngày nay, khi công nghệ số phát triển mạnh mẽ, việc bảo mật thông tin [...]
Cloud hosting Blog
So sánh Cloud Hosting cPanel, DirectAdmin và Plesk
Khi lựa chọn dịch vụ Cloud Hosting để lưu trữ website hoặc ứng dụng, một [...]
Cloud VPS
[2024] Kinh Nghiệm Chọn VPS Treo Game Không Lo Gián Đoạn
Với sự phát triển nhanh chóng của các trò chơi trực tuyến, việc duy trì [...]
Blog
Tuyển Đại lý dịch vụ Cloud – Chiết khấu đến 35%
Cloudzone tuyển đại lý dịch vụ Cloud, Data Center với lợi nhuận không giới hạn, [...]