博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux sort命令用法
阅读量:5174 次
发布时间:2019-06-13

本文共 3903 字,大约阅读时间需要 13 分钟。

sort命令:用于将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序。

命令格式:

sort [-bcdfimMnr][-o
<输出文件>
][-t
<分隔字符>
][+
<起始栏位>
-
<结束栏位>
][--help][--verison][文件]

常见参数:

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。只考虑空格、字母和数字
  • -f 排序时,将小写字母视为大写字母。
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。只考虑可打印字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序;对指定的列进行排序,+0表示第一列,以空格或制表符作为列的间隔符。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -u 去重,配合-c,严格校验排序;不配合-c,则只输出一次排序结果,一般用uniq代替。
  • -r 倒序(降序)以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。例如:-t. 表示按点号分隔域,类似于awk -F或cut -d
  • -k指定第几列或第几列的第几个字符。与-t配合使用
  • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  • --help 显示帮助。
  • --version 显示版本信息。

测试:

去重:

[root@bqh-118 ~]# cat qc.log 192.168.43.117192.168.43.119192.168.43.118192.168.43.118192.168.43.117192.168.43.117192.168.43.119192.168.43.110[root@bqh-118 ~]# sort -u qc.log 192.168.43.110192.168.43.117192.168.43.118192.168.43.119

注:-u,一般用uniq代替。

去重+降序(倒序)排序:

[root@bqh-118 ~]# sort -ur qc.log 192.168.43.119192.168.43.118192.168.43.117192.168.43.110

按数字排序:

[root@bqh-118 ~]# sort -n qc.log 192.168.43.110192.168.43.117192.168.43.117192.168.43.117192.168.43.118192.168.43.118192.168.43.119192.168.43.119

注:默认为升序。

按数字倒序排序

[root@bqh-118 ~]# sort -r qc.log 192.168.43.119192.168.43.119192.168.43.118192.168.43.118192.168.43.117192.168.43.117192.168.43.117192.168.43.110

指定分隔符排序:按对应的列排序

-k, --key=pos1[pos2]

  start a key at pos1 (orign 1), end it at pos2 (default end of line)

1. 默认按整行排序。

2. -t指定分隔符,-k1,分隔符之后的第一列排序

3. -k 1,1  用逗号来分隔字段,表示第一个字段开始排序到第一个字段结束

4. -k 1.1,3.3  用点分隔字符。表示第一个字段的第一个字符开始排序到第三个字段的第三个字符结束。

[root@bqh-118 ~]# cat  qc3.log 192.168.43.117 a192.168.43.119 d192.168.43.118 z192.168.43.118 n192.168.43.117 o192.168.43.117 m192.168.43.119 k192.168.43.110 l[root@bqh-118 ~]# sort -t" " -k2 qc3.log 192.168.43.117 a192.168.43.119 d192.168.43.119 k192.168.43.110 l192.168.43.117 m192.168.43.118 n192.168.43.117 o192.168.43.118 z

[root@bqh-118 ~]# sort -k2 qc3.log 

  192.168.43.117 a
  192.168.43.119 d
  192.168.43.119 k
  192.168.43.110 l
  192.168.43.117 m
  192.168.43.118 n
  192.168.43.117 o
  192.168.43.118 z

注:分隔符默认为空格,-t可省略,所有上边命令可以sort  -k2 qc3.log

[root@bqh-118 ~]# cat qc4.log192.168.0.1 00:OF:AF:45:4C:78192.168.0.71 00:OF:1AF:45:4C:76192.168.0.16 00:OF:KF:55:S6:25192.168.0.99 00:LF:9F:R5:IC:27192.168.0.91 00:OF:H6:45:A1:67192.168.0.65 00:O1:W3:45:49:94192.168.0.89 00:OF:A8:33:V5:90192.168.0.31 00:90:32:J9:1L:14192.168.0.19 00:OF:76:29:30:DF192.168.0.177 00:OF:12:09:P9:41192.168.0.121 00:YF:A2:U7:4O:RT192.168.0.253 00:OF:SD:40:J3:19192.168.0.51 00:II:V5:39:47:OI192.168.0.46 00:OF:A3:81:D3:1Y192.168.0.7 00:OI:W1:IW:H7:B1192.168.0.189 00:OF:S5:00:12:70192.168.0.155 00:OY:TF:4Q:46:8M[root@bqh-118 ~]# sort -t. -k4,4nr qc4.log   #从第4个字段开始排序,到第4个字段结束排序,按数字降序192.168.0.253 00:OF:SD:40:J3:19192.168.0.189 00:OF:S5:00:12:70192.168.0.177 00:OF:12:09:P9:41192.168.0.155 00:OY:TF:4Q:46:8M192.168.0.121 00:YF:A2:U7:4O:RT192.168.0.99 00:LF:9F:R5:IC:27192.168.0.91 00:OF:H6:45:A1:67192.168.0.89 00:OF:A8:33:V5:90192.168.0.71 00:OF:1AF:45:4C:76192.168.0.65 00:O1:W3:45:49:94192.168.0.51 00:II:V5:39:47:OI192.168.0.46 00:OF:A3:81:D3:1Y192.168.0.31 00:90:32:J9:1L:14192.168.0.19 00:OF:76:29:30:DF192.168.0.16 00:OF:KF:55:S6:25192.168.0.7 00:OI:W1:IW:H7:B1192.168.0.1 00:OF:AF:45:4C:78[root@bqh-118 ~]# sort -t. -k3.1,4.1nr qc4.log  #从第三个字段第一个字符排序,到第四个字段第一个字符结束,按数字降序192.168.0.91 00:OF:H6:45:A1:67192.168.0.99 00:LF:9F:R5:IC:27192.168.0.89 00:OF:A8:33:V5:90192.168.0.7 00:OI:W1:IW:H7:B1192.168.0.71 00:OF:1AF:45:4C:76192.168.0.65 00:O1:W3:45:49:94192.168.0.51 00:II:V5:39:47:OI192.168.0.46 00:OF:A3:81:D3:1Y192.168.0.31 00:90:32:J9:1L:14192.168.0.253 00:OF:SD:40:J3:19192.168.0.1 00:OF:AF:45:4C:78192.168.0.121 00:YF:A2:U7:4O:RT192.168.0.155 00:OY:TF:4Q:46:8M192.168.0.16 00:OF:KF:55:S6:25192.168.0.177 00:OF:12:09:P9:41192.168.0.189 00:OF:S5:00:12:70192.168.0.19 00:OF:76:29:30:DF

转载于:https://www.cnblogs.com/su-root/p/10995215.html

你可能感兴趣的文章
12 for循环
查看>>
redis(hash篇)
查看>>
Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏...
查看>>
Hibernate一对多关联
查看>>
python 把函数作为参数 ---高阶函数
查看>>
jQuery + ashx 实现图片按比例预览、异步上传及显示
查看>>
android 代码中使用textAppearance
查看>>
【iOS】UITableViewDelegate 方法没有调用
查看>>
解决code::blocks 17.12不能debug的方法
查看>>
bzoj2961&&bzoj4140 共点圆
查看>>
96:经典实例,判断那一条是闰年:
查看>>
upsource初探
查看>>
让SVN自动更新代码注释中的版本号
查看>>
java中base64
查看>>
常用的mysql操作命令
查看>>
Unity3D的菜单及编辑器扩展
查看>>
我是如何拿到蚂蚁金服 offer 的 ?
查看>>
Android Volley 的基本使用/设置HTTP请求参数、apikey
查看>>
Hibernate框架
查看>>
Vim编辑器的使用总结
查看>>