Linux 中使用 sort 指令分组排序详解

sort 中进行分组排序主要用到的选项为 -k,此文,我们着重于该选项的使用方式,用到的其它选项不做解释,有兴趣的同学可以查看帮助文档

1. 数据准备

现有数据如下,文件名 sort_source.txt

Nov 1 : 4548
Nov 2 : 1383
Oct 2 : 3738
Oct 3 : 418
Nov 4 : 1383
Nov 14 : 1383
Nov 11 : 1381
Nov 12 : 1381
Oct 4 : 4105
Oct 5 : 4089

2. 数据处理

2.1 按某一列进行排序

# 按第一列进行月份排序
sort -k 1M sort_source.txt
# 输出如下:
Oct 2 : 3738
Oct 3 : 418
Oct 4 : 4105
Oct 5 : 4089
Nov 11 : 1381
Nov 12 : 1381
Nov 14 : 1383
Nov 1 : 4548
Nov 2 : 1383
Nov 4 : 1383# 按第 2 列进行数字排序
sort -k 2g sort_source.txt
# 输出如下:
Nov 1 : 4548
Nov 2 : 1383
Oct 2 : 3738
Oct 3 : 418
Nov 4 : 1383
Oct 4 : 4105
Oct 5 : 4089
Nov 11 : 1381
Nov 12 : 1381
Nov 14 : 1383

2.2 分组排序

# 先按第一列进行排序(分组),再按第二列进行排序
sort -k 1M -k2g sort_source.txt
# 输出如下:
Oct 2 : 3738
Oct 3 : 418
Oct 4 : 4105
Oct 5 : 4089
Nov 1 : 4548
Nov 2 : 1383
Nov 4 : 1383
Nov 11 : 1381
Nov 12 : 1381
Nov 14 : 1383

2.3 按某列的某几个字符进行排序

2.3.1 不指定分割符的情况下

不指定分割符的情况下,会从空格处进行计数,起始偏移量为 1

# 按第四列的第二、三个可显字符进行数字排序
sort -k 4.3,4.4g sort_source.txt
# 输出如下:注意,第3个字符是从空白字符开始算,起始为 1
Oct 5 : 4089    # 第四列第3个字符为0
Oct 4 : 4105
Oct 3 : 418
Nov 11 : 1381
Nov 12 : 1381
Nov 14 : 1383
Nov 2 : 1383
Nov 4 : 1383
Nov 1 : 4548
Oct 2 : 3738

2.3.2 指定分割符的情况下

指定分割符时,以第一个非指定字符为起始,偏移量为 1

# 按第四列的第二、三个字符进行数字排序
sort -t ' ' -k 4.2,4.3g sort_source.txt
# 输出如下:注意,第2个字符是从非空白字符开始算,起始为 1
Oct 5 : 4089    # 第四列第2个字符为0
Oct 4 : 4105
Oct 3 : 418
Nov 11 : 1381
Nov 12 : 1381
Nov 14 : 1383
Nov 2 : 1383
Nov 4 : 1383
Nov 1 : 4548
Oct 2 : 3738

2.3.2 指定分割符的情况下按某列内的某一个字符进行排序

注意,要按某个确切的字符进行排序,则起始偏移量和结束偏移量要相同,且必须要指定结束偏移量

# 按第四列的第3个字符进行数字排序
sort -t ' ' -k 4.3,4.3g sort_source.txt
# 输出如下:注意,第3个字符是从非空白字符开始算,起始为 1
Oct 4 : 4105
Oct 2 : 3738
Nov 1 : 4548
Nov 11 : 1381
Nov 12 : 1381
Nov 14 : 1383
Nov 2 : 1383
Nov 4 : 1383
Oct 3 : 418
Oct 5 : 4089

Linux 中使用 sort 指令分组排序详解相关推荐

  1. C++中的结构体vector排序详解

    C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动.具体事例如下所示: // ...

  2. linux文件目录:Linux中各目录(文件夹)作用详解(持续更新)

    进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是"文件系统",文件的存放就是在目录下面,那我们了解下"Linux中各目录(文件夹)作用详解"还 ...

  3. Linux中history历史命令使用方法详解

    在/etc/profile里添加如下:#History export HISTTIMEFORMAT="[%F %T]" HISTDIR=/home/common/.hist if ...

  4. linux ipset 流量,linux中ipset命令的使用方法详解

    linux中ipset命令的使用方法详解 发布时间:2020-10-25 17:07:19 来源:脚本之家 阅读:97 作者:lijiaocn 栏目:服务器 ipset介绍 iptables是在lin ...

  5. Linux中ls -l命令展示信息详解

    Linux中ls -l命令展示信息详解 在Linux系统中,ls -l命令是用以列表的形式来查看当前目录下的文件或目录,下面就让我们一起来看看展示的信息是什么意思吧 以CentsOS7为例子 [roo ...

  6. 【Linux】Linux中rz和sz命令用法详解

    [Linux]Linux中rz和sz命令用法详解 1. 简单介绍 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具.优点就是不用再开一个sftp工具登录上去上传下载 ...

  7. Linux中RPM 和 YUM 包管理详解

    概述 在本教程中,学习如何使用 RPM 和 YUM 工具管理 Linux 系统上的包.学习: 使用 RPM 和 YUM 安装.重新安装.升级和删除包. 获取 RPM 包的信息,包括版本.状态.依赖项. ...

  8. linux 清空进程recv q,Linux中ss命令Recv-Q和Send-Q详解

    ss 用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比nets ...

  9. 使用Sort 对文件排序详解

    当我们处理大量数据时,linux有个常用命令sort,对数据默认进行字符排序,然后标准输出. sort 命令原理  默认情况下,sort命令将文件每一行作为进行比较,排序规则:从第一个字符向后,依次按 ...

最新文章

  1. solrcloud Read and Write Side Fault Tolerance
  2. 关于线程池你不得不知道的一些设置
  3. opencv python 官方文档里的“sa”关键字是什么意思?(see also)
  4. Ansible 五(inventory文件 主机清单)
  5. 【转】C#中枚举类型与静态变量
  6. 近7万新冠域名一半是钓鱼网站?以色列老牌安全厂商Check Point推出全端保护新战略
  7. 程序设计与算法----枚举之完美立方
  8. 在线英文字符串大写转小写,小写转大写工具
  9. [转载] Python全栈(1)—— Python如何快速下载库与jupyter notebook 的基本使用
  10. php wordpress乱码,PHP問題:基于WordPress的CMS网站在文章摘要末尾出现乱码
  11. Node节点禁止调度(平滑维护)方式- cordon,drain,delete
  12. Unity插件-AVPro Video 使用案例之视频播放
  13. html项目的致谢词,毕业论文致谢词范文200字(精选10篇)
  14. Node.js 字体格式转换 ttf2eot ttf2woff ttf2svg
  15. java 最烧脑的继承题_小学生这5道烧脑数学题,难倒了无数大学生,答对的都是高智商...
  16. cad怎么转换成pdf格式
  17. 香港理工大学酒店管理html,香港理工大学大酒店管理硕士要求
  18. 如何用python做一个游戏主播_做一个游戏主播有多难?
  19. python 线性回归 技术方案亮点_python线性回归实战案例
  20. 武汉理工大学专升本计算机考试试题,2019年4月自考计算机组成原理考试真题试卷...

热门文章

  1. macos安装vscode_如何使用VSCode进行PostgreSQL开发及调试
  2. Java LineNumberInputStream available()方法与示例
  3. 数组tostring方法_数组toString()方法以及JavaScript中的示例
  4. Spring IoC?看这篇文章就够了...
  5. 使用Docker部署RabbitMQ集群
  6. SQL Server 不同数据库导入指定数据解决方案
  7. Auto activation triggers for Java(代码提示)功能扩展
  8. 什么从什么写短句_2020抖音文案短句:爱情、励志、伤感合集,值得收藏!
  9. 西工大计算机学院交流,2017西工大计算机交流+精贵资料
  10. oracle报28003,【翻译自mos文章】运行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...