[ShellScript] Hướng dẫn sắp xếp thông tin địa chỉ IP theo thứ tự với chương trình lệnh “sort”

Bây giờ các bạn có 1 tình huống như sau, các bạn có 1 danh sách các IP cụ thể được chứa trong 1 file text. Bạn muốn sắp xếp các thông tin IP này theo thứ tự sắp xếp tăng dẫn/giảm dần thì bạn sẽ làm thế nào trên hệ thống bash shell ?

Đấy sẽ nội dung mà mình trình bày ở đây, bạn có thể áp dụng vào shell script hoặc xử lý văn bản ngay trên terminal bash shell. Nhìn chung thì cũng nhanh thôi, mình sẽ dùng chương trình lệnh “sort” .

Ví dụ đây là nội dung file :

# cat /tmp/demo-ip.txt
192.168.1.100
192.168.1.19
192.168.1.102
192.168.2.1
192.168.0.2
192.168.5.199
192.168.5.55
192.168.15.102
192.168.2.37
192.168.0.8

 
Bạn thực hiện cấu trúc lệnh “sort” với các option như sau :

# cat /tmp/demo-ip.txt | sort -n -t '.' -k 1,1 -k 2,2 -k 3,3 -k 4,4
192.168.0.2
192.168.0.8
192.168.1.19
192.168.1.100
192.168.1.102
192.168.2.1
192.168.2.37
192.168.5.55
192.168.5.199
192.168.15.102

 
Chú thích :
+ “-t” : chỉ định dấu ngăn cách quy định các cột, tức giữa các dấu “.” sẽ được xem là 1 cột.
+ “-n” : chỉ định chương trình sort sắp xếp theo dạng các dữ liệu số (numeric).
+ “-km,n : sẵp xếp theo thứ tự từng cột, ‘-k 1,1‘ thì sắp xếp theo thứ tự cột đầu tiên trước, sau đó đến cột thứ 2 ‘-k 2,2‘ , ‘-k 3,3‘ và ‘-k 4,4‘ cột 3,4 cũng tương tự vậy. Nếu bạn muốn nắm rõ hơn nội dung ‘-k’ là gì, thì bạn có thể manual lệnh “sort” xem thêm.

Vậy là xong rồi, có thể còn những cách khác nhưng mình chỉ sử dụng “sort” cho tiện lợi.

Previous article[Apache] Fix lỗi Web Server Apache – No matching DirectoryIndex (index.html) found
Next article[SSH] Hướng dẫn thay đổi mật khẩu Passphrase của SSH Private Key trên Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !