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
Cloudzone Triển Khai Khảo Sát Chất Lượng Dịch Vụ
Cloudzone là một trong những đơn vị hàng đầu trong lĩnh vực CNTT tại Việt [...]
portal cloudzone Blog
Tính Năng Xác Thực Hai Yếu Tố (2FA) trong Portal Cloudzone
Khám phá cách kích hoạt và sử dụng tính năng Xác Thực Hai Yếu Tố [...]
Blog portal cloudzone
Portal Cloudzone – Quản Lý Dịch Vụ CNTT Hiệu Quả và Bảo Mật
Cùng khám phá Portal Cloudzone – hệ thống quản lý dịch vụ CNTT toàn diện [...]
Blog Chưa được phân loại Kiến thức Tin Tức
Microsoft ngừng hỗ trợ Windows Server 2012 và 2012 R2
Microsoft đã chính thức thông báo về việc ngừng hỗ trợ cho Windows Server 2012 [...]
Blog Máy chủ vật lý
Chi phí đầu tư 1 máy chủ vật lý đắt đỏ như thế nào?
Đối với mỗi doanh nghiệp, máy chủ vật lý là một công cụ vô cùng [...]
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 [...]