BÀI VIẾT

Hướng dẫn sử dụng lệnh sort trong Linux

3.2K
author Huỳnh Đình Hiếu - 2022-08-05 16:43:33 (GMT+7)

Giới thiệu

Lệnh sort được sử dụng trong Linux để in đầu ra của một file theo thứ tự nhất định. Lệnh này xử lý trên dữ liệu của chúng ta (nội dung file hoặc đầu ra của bất kỳ lệnh nào) và sắp xếp lại theo cách được chỉ định, giúp chúng ta đọc dữ liệu một cách hiệu quả. Nó rất hữu ích trong trường hợp có sẵn một lượng lớn thông tin và cần được sắp xếp theo thứ tự bảng chữ cái hoặc tăng dần hoặc giảm dần.

Cú pháp lệnh sort

sort <tùy chọn> <filename>

Các ví dụ lệnh sort

Sắp sếp theo mặc định.

Chúng ta có file 123host.txt như sau:

bash (non-root)
cat 123host.txt
Dang ky ten mien
Bang gia ten mien
Chuyen ten mien
Chuyen nhuong ten mien
Hosting gia re
Seo hosting
Cloud vps
Wordpress Hosting
Email
SSL
CDN
Anti-DDOS

Mặc định sắp xếp theo thứ tự a đến z(thứ tự tăng dần) dựa trên kí tự đầu tiên của mỗi dòng.

bash (non-root)
sort 123host.txt
Anti-DDOS
Bang gia ten mien
CDN
Chuyen nhuong ten mien
Chuyen ten mien
Cloud vps
Dang ky ten mien
Email
Hosting gia re
SSL
Seo hosting
Wordpress Hosting

Sắp xếp theo thứ tự giảm dần

Để sắp xếp theo thứ tự giảm dần( từ z-a) chúng ta dùng tùy chọn -r.

bash (non-root)
sort -r 123host.txt
Wordpress Hosting
Seo hosting
SSL
Hosting gia re
Email
Dang ky ten mien
Cloud vps
Chuyen ten mien
Chuyen nhuong ten mien
CDN
Bang gia ten mien
Anti-DDOS

Sắp xếp các số từ bé đến lớn

Chúng ta có file number.txt như sau:

bash (non-root)
cat number.txt
80
22
9
12
100
16
1
40

Để sắp xếp số theo thứ tự các số từ bé đến lớn chúng ta sử dụng tùy chọn -n như sau:

bash (non-root)
sort -n number.txt
1
9
12
16
22
40
80
100

Sắp xếp các số từ lớn đến bé

Để sắp xếp các số theo thứ tự từ lớn đến bé chúng ta dùng tùy chọn -n-r.

bash (non-root)
sort -nr number.txt
100
80
40
22
16
12
9
1

Sắp xếp một cách ngẫu nhiên

Để sắp xếp ngẫu nhiên chúng ta sử dụng tuỳ chọn -R.

bash (non-root)
sort -R number.txt
12
40
1
16
9
80
100
22

Lưu ý: các dòng trùng lặp sẽ luôn luôn kết thúc cạnh nhau.

Sắp xếp và xóa các dòng trùng lặp.

Chúng ta có file demo-123host.txt như sau:

bash (non-root)
cat demo-123host.txt
Dang ky ten mien
Dang ky ten mien
Hosting gia re
Seo hosting
Cloud vps
Cloud vps
Wordpress Hosting
Email
SSL
SSL
CDN
Anti-DDOS

Để loại bỏ các dòng trùng lặp chúng ta sử dụng tùy chọn -u.

bash (non-root)
sort -u demo-123host.txt
Anti-DDOS
CDN
Cloud vps
Dang ky ten mien
Email
Hosting gia re
SSL
Seo hosting
Wordpress Hosting

Sắp xếp các tháng trong file.

Cũng giống như sắp xếp dữ liệu hoặc số, chúng ta cũng có thể sắp xếp các tháng trong tệp. Chúng ta sẽ sử dụng tùy chọn -M và đảo ngược thứ tự bằng tùy chọn -r. Chúng ta có file months như sau:

bash (non-root)
cat months.txt
February
December
January
July

Chúng ta sắp xếp các tháng theo thứ tự tăng dần.

bash (non-root)
sort -M months.txt
January
February
July
December

Chúng ta sắp xếp các tháng theo thứ tự giảm dần.

bash (non-root)
sort -Mr months.txt
December
July
February
January

Sắp xếp theo cột.

Chúng ta cũng có thể sắp xếp cột cụ thể. Để sắp xếp một cột cụ thể, chúng ta sử dụng tùy chọn -k cùng với một số cột.

Ví dụ chúng ta có file 123host.txt với nội dung như sau:

bash (non-root)
cat 123host.txt
Hosting 10
Vps 5
Email 50
SSL 2
CDN 22
DDOS 40

Để sắp xếp theo cột chúng ta sử dụng tùy chọn -k và số cột muốn sắp xếp, ở đây là cột số 2 và tùy chọn -n để sắp xếp số.

bash (non-root)
sort -k 2n 123host.txt
SSL 2
Vps 5
Hosting 10
CDN 22
DDOS 40
Email 50

Sắp xếp dữ liệu của nhiều file

Chúng ta có thể sắp xếp dữ liệu của nhiều file cùng một lúc. Chúng ta có thể thực hiện lệnh find, đầu ra của lệnh find sẽ là đầu vào của lệnh sort.

Ví dụ chúng ta có các file có phần mở rộng .txt như 123host.txt, months.txt, number.txt. Chúng ta sử dụng lệnh find để tìm và nạp các file có phần mở rộng .txt vào lệnh sort với đường ống, chúng ta sử dụng thêm tùy chọn -n để sắp xếp các số như sau:

bash (non-root)
find -name "*.txt" -print0 | sort -n --files0-from=-
CDN 22
DDOS 40
December
Email 50
February
Hosting 10
January
July
SSL 2
Vps 5
1
9
12
16
22
40
80
100

Sắp xếp và lưu vào một file khác

Để sắp xếp rồi chỉ định tệp đầu ra chúng ta dùng tùy chọn -o.

bash (non-root)
sort number.txt -o result.txt
bash (non-root)
cat result.txt
1
100
12
16
22
40
80
9

Hoặc chúng ta có thể dùng lệnh như sau:

bash (non-root)
sort number.txt > result.txt

Kiểm tra file được sắp xếp hay chưa.

Có một tùy chọn mà chúng ta có thể kiểm tra xem file đã được sắp xếp hay chưa. Sử dụng tùy chọn -c, lệnh sắp xếp báo cáo dòng đầu tiên không đúng vị trí. Nếu tệp hiện có đã được sắp xếp rồi, thì việc sắp xếp sẽ không đưa ra bất kỳ đầu ra nào. Nó sẽ lần lượt kiểm tra từng dòng và khi tìm thấy dòng nào không được sắp xếp, nó sẽ đưa ra một thông báo.

bash (non-root)
sort -c demo-123host.txt
sort: demo-123host.txt:5: disorder: Cloud vps

Tổng kết

Chúng ta đã kết thúc bài hướng dẫn sử dụng lệnh sort trong Linux. Hy vọng qua bài này sẽ giúp các bạn hiểu về các chức năng và tùy chọn cơ bản của lệnh sort.


Bạn có làm được theo hướng dẫn này không?

Bài liên quan

Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh tạo một dãy số tăng dần trên Linux
Lệnh tạo một dãy số tăng dần trên Linux

Object Storage

Chuẩn S3, không giới hạn băng thông

Object Storage

Thuê Server Riêng

Chi phí thấp, cấu hình cao

Thuê Server Riêng
Thông tin tác giả
1 Bình luận

Tính năng đang được phát triển

Đang tải bình luận