sort 排序命令-k参数小技巧
例子截取:
192.168.3.1 00:0F:AF:81:19:1F
192.168.3.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.1.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
1.sort -n -t. -k3,3 -k4.1,4.3 arp.txt
-n 按数字排
-t.按点号分隔域
-k3,3 从第三个字段开始排序,到第三个字段结束。
-k4.1,4.3 从第四个字段的第一个字符开始排序,到第四个字段的第三个字符结束。
2.sort -n -t. -k3,3 -k4,4.3 arp.txt
-k4,4.3 默认是从第4列的第一个字符开始排,到第四个字段的第三个字符结束。
3.sort -n -t. -k3,3 -k4,4 arp.txt
-k4,4 默认是从第4列的第一个字符开始排,到第四个字段结尾,结果没错,排序时间会长。
4.sort -n -t. -k3,3 -k4 arp.txt
把第4个字符后面所有的都排,结果也是对的,因为只有四个字段,慢.
sort -n -t . -k1 -k2 -k3.3 -k4.4 arp.txt
这个结果也对,很怪异了
________________________________________________________________________________
以下为参考
.是第几个字符。
,号前面默认是第一个字符,后面默认是到结尾。
sort -n -t. -k3,3 -k4 arp.txt
sort -n -t. -k3,3 -k4.1,4.3 arp.txt
sort -n -t. -k3,3 -k4,4.3 arp.txt
我搞清楚了,那天理解的没错,.和,不是一回事,,号后面表示到第几个字段结束,关键在k3这里,不加,3就一直排到结尾,所以出错,标准是-k3,3
sort -n -t. -k3,3 -k4.1,4.3 arp.txt 是最标准的。
sort -n -t. -k3,3 -k4,4.3 arp.txt这个是把,前的省略,默认为第一个字符。
sort -n -t. -k3,3 -k4,4 arp.txt 这个是把,后面的未字符省略,结果没错,但多比较了一些,应该慢一些。
sort -n -t. -k3,3 -k4 arp.txt
这个是把第4个字符后面所有的都排,结果也是对的,因为只有四个字段,慢。 来自oldboy早期教学