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

命令格式:

  1. 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 显示版本信息。

测试:

去重:

  1. [root@bqh-118 ~]# cat qc.log
  2. 192.168.43.117
  3. 192.168.43.119
  4. 192.168.43.118
  5. 192.168.43.118
  6. 192.168.43.117
  7. 192.168.43.117
  8. 192.168.43.119
  9. 192.168.43.110
  10. [root@bqh-118 ~]# sort -u qc.log
  11. 192.168.43.110
  12. 192.168.43.117
  13. 192.168.43.118
  14. 192.168.43.119

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

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

  1. [root@bqh-118 ~]# sort -ur qc.log
  2. 192.168.43.119
  3. 192.168.43.118
  4. 192.168.43.117
  5. 192.168.43.110

按数字排序:

  1. [root@bqh-118 ~]# sort -n qc.log
  2. 192.168.43.110
  3. 192.168.43.117
  4. 192.168.43.117
  5. 192.168.43.117
  6. 192.168.43.118
  7. 192.168.43.118
  8. 192.168.43.119
  9. 192.168.43.119

注:默认为升序。

按数字倒序排序

  1. [root@bqh-118 ~]# sort -r qc.log
  2. 192.168.43.119
  3. 192.168.43.119
  4. 192.168.43.118
  5. 192.168.43.118
  6. 192.168.43.117
  7. 192.168.43.117
  8. 192.168.43.117
  9. 192.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  用点分隔字符。表示第一个字段的第一个字符开始排序到第三个字段的第三个字符结束。

  1. [root@bqh-118 ~]# cat qc3.log
  2. 192.168.43.117 a
  3. 192.168.43.119 d
  4. 192.168.43.118 z
  5. 192.168.43.118 n
  6. 192.168.43.117 o
  7. 192.168.43.117 m
  8. 192.168.43.119 k
  9. 192.168.43.110 l
  10. [root@bqh-118 ~]# sort -t" " -k2 qc3.log
  11. 192.168.43.117 a
  12. 192.168.43.119 d
  13. 192.168.43.119 k
  14. 192.168.43.110 l
  15. 192.168.43.117 m
  16. 192.168.43.118 n
  17. 192.168.43.117 o
  18. 192.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

  1. [root@bqh-118 ~]# cat qc4.log
  2. 192.168.0.1 00:OF:AF:45:4C:78
  3. 192.168.0.71 00:OF:1AF:45:4C:76
  4. 192.168.0.16 00:OF:KF:55:S6:25
  5. 192.168.0.99 00:LF:9F:R5:IC:27
  6. 192.168.0.91 00:OF:H6:45:A1:67
  7. 192.168.0.65 00:O1:W3:45:49:94
  8. 192.168.0.89 00:OF:A8:33:V5:90
  9. 192.168.0.31 00:90:32:J9:1L:14
  10. 192.168.0.19 00:OF:76:29:30:DF
  11. 192.168.0.177 00:OF:12:09:P9:41
  12. 192.168.0.121 00:YF:A2:U7:4O:RT
  13. 192.168.0.253 00:OF:SD:40:J3:19
  14. 192.168.0.51 00:II:V5:39:47:OI
  15. 192.168.0.46 00:OF:A3:81:D3:1Y
  16. 192.168.0.7 00:OI:W1:IW:H7:B1
  17. 192.168.0.189 00:OF:S5:00:12:70
  18. 192.168.0.155 00:OY:TF:4Q:46:8M
  19. [root@bqh-118 ~]# sort -t. -k4,4nr qc4.log #从第4个字段开始排序,到第4个字段结束排序,按数字降序
  20. 192.168.0.253 00:OF:SD:40:J3:19
  21. 192.168.0.189 00:OF:S5:00:12:70
  22. 192.168.0.177 00:OF:12:09:P9:41
  23. 192.168.0.155 00:OY:TF:4Q:46:8M
  24. 192.168.0.121 00:YF:A2:U7:4O:RT
  25. 192.168.0.99 00:LF:9F:R5:IC:27
  26. 192.168.0.91 00:OF:H6:45:A1:67
  27. 192.168.0.89 00:OF:A8:33:V5:90
  28. 192.168.0.71 00:OF:1AF:45:4C:76
  29. 192.168.0.65 00:O1:W3:45:49:94
  30. 192.168.0.51 00:II:V5:39:47:OI
  31. 192.168.0.46 00:OF:A3:81:D3:1Y
  32. 192.168.0.31 00:90:32:J9:1L:14
  33. 192.168.0.19 00:OF:76:29:30:DF
  34. 192.168.0.16 00:OF:KF:55:S6:25
  35. 192.168.0.7 00:OI:W1:IW:H7:B1
  36. 192.168.0.1 00:OF:AF:45:4C:78
  37. [root@bqh-118 ~]# sort -t. -k3.1,4.1nr qc4.log #从第三个字段第一个字符排序,到第四个字段第一个字符结束,按数字降序
  38. 192.168.0.91 00:OF:H6:45:A1:67
  39. 192.168.0.99 00:LF:9F:R5:IC:27
  40. 192.168.0.89 00:OF:A8:33:V5:90
  41. 192.168.0.7 00:OI:W1:IW:H7:B1
  42. 192.168.0.71 00:OF:1AF:45:4C:76
  43. 192.168.0.65 00:O1:W3:45:49:94
  44. 192.168.0.51 00:II:V5:39:47:OI
  45. 192.168.0.46 00:OF:A3:81:D3:1Y
  46. 192.168.0.31 00:90:32:J9:1L:14
  47. 192.168.0.253 00:OF:SD:40:J3:19
  48. 192.168.0.1 00:OF:AF:45:4C:78
  49. 192.168.0.121 00:YF:A2:U7:4O:RT
  50. 192.168.0.155 00:OY:TF:4Q:46:8M
  51. 192.168.0.16 00:OF:KF:55:S6:25
  52. 192.168.0.177 00:OF:12:09:P9:41
  53. 192.168.0.189 00:OF:S5:00:12:70
  54. 192.168.0.19 00:OF:76:29:30:DF

linux sort命令用法的更多相关文章

  1. linux sort命令学习

    linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...

  2. linux sort 命令详解(转 )

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

  3. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  4. (转)linux paste命令用法详解

    linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...

  5. Linux sort命令详解

    linux之sort用法 sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容, ...

  6. 【转】linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

  7. linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...

  8. Linux sort命令使用方法

    sort命令在Linux中主要用于对文件进行排序,并将排序结果输出.sort命令输入可以是指定的文件和数据流.本文主要介绍sort命令的基本语法和常见使用实例. sort命令语法 sort命令格式:s ...

  9. (转)Linux sort命令

    Linux 的 ‘sort’命令的14个有用的范例(一) 2015-5-2 10:29    评论: 3 收藏: 10 编译自:http://www.tecmint.com/sort-command- ...

随机推荐

  1. java获取全部子类或接口的全部实现

    在JAVA中,获取一个类的全部父类是比较简单的,只需要通过反射(Class的getSuperclass()方法)即可.然而,如果想获得一个类的所有子类,或者获得实现某一个接口的所有实现类,相对比较麻烦 ...

  2. C++数据存储方式

    1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区,里面的变量通常是局部变量.函数参数等. 2.堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去 ...

  3. php cURL error 60: SSL certificate problem: unable to get local issuer certificate 解决办法

    错误例子如下: php5.6以上的版本会出现这种问题 关于“SSL证书问题:无法获取本地颁发者证书”错误.很明显,这适用于发送CURL请求的系统(并且没有服务器接收请求) 1)从https://cur ...

  4. auto和decltype的用法总结

    一, auto 1, auto的作用     一般来说, 在把一个表达式或者函数的返回值赋给一个对象的时候, 我们必须要知道这个表达式的返回类型, 但是有的时候我们很难或者无法知道这个表达式或者函数的 ...

  5. Python - Django - 模板语言之 Filters(过滤器)

    通过管道符 "|" 来使用过滤器,{{ value|过滤器:参数 }} Django 的模板语言中提供了六十个左右的内置过滤器 urls.py: from django.conf. ...

  6. VUE中事件修饰符:stop prevent self capture

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  7. FreeRTOS 时间片,外部中断,任务优先级的一个疑问

    时间片1ms 假设有两个任务,A和B,A任务等待中断里面发出的信号量,B任务在运行 此时,B任务运行了300us的时候中断发生,发出信号量,那么任务A接收到信号量,A任务优先级高,A任务运行 有个问题 ...

  8. Linux18.04换源等等等配置

    root用户 sudo passwd root 安装Tools 文件→其他位置→Vmware Tools→打开终端. 管理员权限→copy→tar -zxvf 文件名解压→打开vmware-tools ...

  9. QT学习之usb摄像头采集(Opencv+QT)[cvCapture,IplImage,QImage]

    参考自:http://blog.chinaunix.net/uid-23381466-id-3826748.html 将Opencv中的cvCaptureFromCAM不断获得摄像头采集到的图像数据, ...

  10. 使用AOP进行权限验证

    首先我们定义一个切入点(匹配com.ed.controller.Seller开头的controller的所有public方法) @Pointcut("execution(public * c ...