IP 和 Mac address 排序

手上有一份 IP 和 Mac address 的對照表
# cat ipmac.txt
192.168.1.112 00:0c:29:ac:47:64
192.168.1.254 50:67:f0:19:cf:a4
192.168.1.2 ac:22:0b:50:49:ea
192.168.1.5 00:1d:7d:d5:2f:d3
192.168.1.100 00:11:32:0c:da:e2
192.168.1.101 28:cf:e9:80:0c:76

想要以 IP 排序由小到大,但一直都無法試驗成功
# sort -n ipmac.txt
192.168.1.100 00:11:32:0c:da:e2
192.168.1.101 28:cf:e9:80:0c:76
192.168.1.112 00:0c:29:ac:47:64
192.168.1.254 50:67:f0:19:cf:a4
192.168.1.2 ac:22:0b:50:49:ea
192.168.1.5 00:1d:7d:d5:2f:d3[@more@]後來利用 sed 來處理就 OK 了!
想法:
1. 先去除 IP 前面的 192.168.1.
    以下三種方式都可以
# cat ipmac.txt | sed -n ‘/192.168.1./s/192.168.1.//p’
# cat ipmac.txt | sed ‘s/^……….//’
# cat ipmac.txt | sed ‘s/^.{10}//’
112 00:0c:29:ac:47:64
254 50:67:f0:19:cf:a4
2 ac:22:0b:50:49:ea
5 00:1d:7d:d5:2f:d3
100 00:11:32:0c:da:e2
101 28:cf:e9:80:0c:76

2. 以 sort 排序
# cat ipmac.txt | sed ‘s/^.{10}//’ | sort -n
2 ac:22:0b:50:49:ea
5 00:1d:7d:d5:2f:d3
100 00:11:32:0c:da:e2
100 00:11:32:0c:da:e2
101 28:cf:e9:80:0c:76
112 00:0c:29:ac:47:64
254 50:67:f0:19:cf:a4

3. 排序完成之後,再將 192.168.1. 加回
# cat ipmac.txt | sed ‘s/^.{10}//’ | sort -n | sed ‘s/^/192.168.1./’
192.168.1.2 ac:22:0b:50:49:ea
192.168.1.5 00:1d:7d:d5:2f:d3
192.168.1.100 00:11:32:0c:da:e2
192.168.1.101 28:cf:e9:80:0c:76
192.168.1.112 00:0c:29:ac:47:64
192.168.1.254 50:67:f0:19:cf:a4

終於可以了,自己胡亂試了一下,如果大家有更好的方式,歡迎告知!