英文: sort lines of text files
描述: 对文本内容进行排序
用法
-
命令格式
sort [OPTION]… [FILE]…
sort [OPTION]… --files0-from=F -
参数
-u:去除重复项(对相同的行只输出一行)
-r:倒序排序
-n:按数字排序
-t:指定分隔符(类式:awk -F,取段$1,$2、cut -d 取段f)
-k:指定第几列或第几列的第几个字符
-k1:分隔符之后的第一列排序
-k 字段1,字段2:从字段1开始排序到字段2结束
-b:忽略前导的空格
-d:只考虑空格,字母和数字
-f:忽略字母的大小写
-i:只考虑可打印字符
-M:排序月份
+n:n为数字,对指定的列进行排序,+0表示第1列,以空格或制表符作为列的间隔符
样例
- 测试数据
[root@localhost ~]# cat test.txt 10.0.0.9 b 10.0.0.8 c 10.0.0.7 a 10.0.0.7 x 10.0.0.8 o 10.0.0.8 y 10.0.0.9 o
- 按照第2列排序
[root@localhost ~]# sort -t" " -k 2 test.txt 10.0.0.7 a 10.0.0.9 b 10.0.0.8 c 10.0.0.8 o 10.0.0.9 o 10.0.0.7 x 10.0.0.8 y
- 将ip地址按照第三段地址降序排序,如第三段一样则第四段按照降序排序
测试文本
排序脚本192.168.1.123 00:0c:29:a5:c5:fb 192.168.1.11 00:0c:29:a5:c5:fb 192.168.1.1 00:0c:29:a5:c5:fb 192.168.1.13 00:0c:29:a5:c5:fb 192.168.3.23 00:0c:29:a5:c5:fb 192.168.3.78 00:0c:29:a5:c5:fb 192.168.3.34 00:0c:29:a5:c5:fb 192.168.3.56 00:0c:29:a5:c5:fb 192.168.3.12 00:0c:29:a5:c5:fb 192.168.2.34 00:0c:29:a5:c5:fb 192.168.2.56 00:0c:29:a5:c5:fb 192.168.2.78 00:0c:29:a5:c5:fb 192.168.2.145 00:0c:29:a5:c5:fb 192.168.3.112 00:0c:29:a5:c5:fb
[root@localhost ~]# sort -t. -k3.1,3.1nr -k4.1,4.3nr ip.txt 192.168.3.112 00:0c:29:a5:c5:fb 192.168.3.78 00:0c:29:a5:c5:fb 192.168.3.56 00:0c:29:a5:c5:fb 192.168.3.34 00:0c:29:a5:c5:fb 192.168.3.23 00:0c:29:a5:c5:fb 192.168.3.12 00:0c:29:a5:c5:fb 192.168.2.145 00:0c:29:a5:c5:fb 192.168.2.78 00:0c:29:a5:c5:fb 192.168.2.56 00:0c:29:a5:c5:fb 192.168.2.34 00:0c:29:a5:c5:fb 192.168.1.123 00:0c:29:a5:c5:fb 192.168.1.13 00:0c:29:a5:c5:fb 192.168.1.11 00:0c:29:a5:c5:f 192.168.1.1 00:0c:29:a5:c5:df