1、简单的,相同网段。
lsn@lsn:~$ cat ip.txt
192.168.10.2
192.168.10.11
192.168.10.4
192.168.10.5
192.168.10.3
lsn@lsn:~$ awk -F '.' '{print $4"\t"$0}' ip.txt | sort -n | awk '{print $2}'
192.168.10.2
192.168.10.3
192.168.10.4
192.168.10.5
192.168.10.11
192.168.10.2
222.211.10.1
222.222.2.1
192.168.10.11
192.168.10.4
192.168.10.5
lsn@lsn:~$ cat ip.txt
192.168.10.2
192.168.10.11
192.168.10.4
192.168.10.5
192.168.10.3
lsn@lsn:~$ awk -F '.' '{print $4"\t"$0}' ip.txt | sort -n | awk '{print $2}'
192.168.10.2
192.168.10.3
192.168.10.4
192.168.10.5
192.168.10.11
2、不同网段。
192.168.10.2
222.211.10.1
222.222.2.1
192.168.10.11
192.168.10.4
192.168.10.5
192.168.10.3
lsn@lsn:~$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ip.txt
192.168.10.2
192.168.10.3
192.168.10.4
192.168.10.5
192.168.10.11
222.211.10.1
222.222.2.1
sort提供了-t选项,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数了。