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 Cloud hosting Tin Tức
So sánh Web Hosting truyền thống và Cloud Web Hosting
Web Hosting là một phần quan trọng trong việc đưa website của bạn lên mạng. [...]
Blog Cloud hosting Tin Tức
HOSTING GIÁ RẺ LIỆU CÓ TỐT KHÔNG?
Hiện nay, chỉ cần với một vài cú click chuột, bạn có thể tìm thấy [...]
Blog Cloud hosting
5 lý do khiến khách hàng lựa chọn Cloud Hosting tại Cloudzone
Trong thời đại công nghệ 4.0 hiện nay, Cloud Hosting đang trở thành xu hướng [...]
Blog Cloud hosting
Cloud web Hosting: Những lợi ích mang lại cho doanh nghiệp
Chúng ta sẽ phân tích rõ hơn về những lợi ích của Cloud Web Hosting: [...]
Blog Cloud hosting
Cloud Hosting là gì? Thông tin cần biết khi mua
Cloud Hosting là một dịch vụ lưu trữ đám mây, cho phép bạn lưu trữ [...]
Blog Cloud hosting
Top 3 công cụ quản trị Web Hosting tốt nhất 2023
Công cụ quản trị web hosting cho phép bạn quản lý và cấu hình máy [...]