Linux 中使用 sort 指令分组排序详解
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 指令分组排序详解相关推荐
- C++中的结构体vector排序详解
C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动.具体事例如下所示: // ...
- linux文件目录:Linux中各目录(文件夹)作用详解(持续更新)
进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是"文件系统",文件的存放就是在目录下面,那我们了解下"Linux中各目录(文件夹)作用详解"还 ...
- Linux中history历史命令使用方法详解
在/etc/profile里添加如下:#History export HISTTIMEFORMAT="[%F %T]" HISTDIR=/home/common/.hist if ...
- linux ipset 流量,linux中ipset命令的使用方法详解
linux中ipset命令的使用方法详解 发布时间:2020-10-25 17:07:19 来源:脚本之家 阅读:97 作者:lijiaocn 栏目:服务器 ipset介绍 iptables是在lin ...
- Linux中ls -l命令展示信息详解
Linux中ls -l命令展示信息详解 在Linux系统中,ls -l命令是用以列表的形式来查看当前目录下的文件或目录,下面就让我们一起来看看展示的信息是什么意思吧 以CentsOS7为例子 [roo ...
- 【Linux】Linux中rz和sz命令用法详解
[Linux]Linux中rz和sz命令用法详解 1. 简单介绍 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具.优点就是不用再开一个sftp工具登录上去上传下载 ...
- Linux中RPM 和 YUM 包管理详解
概述 在本教程中,学习如何使用 RPM 和 YUM 工具管理 Linux 系统上的包.学习: 使用 RPM 和 YUM 安装.重新安装.升级和删除包. 获取 RPM 包的信息,包括版本.状态.依赖项. ...
- linux 清空进程recv q,Linux中ss命令Recv-Q和Send-Q详解
ss 用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比nets ...
- 使用Sort 对文件排序详解
当我们处理大量数据时,linux有个常用命令sort,对数据默认进行字符排序,然后标准输出. sort 命令原理 默认情况下,sort命令将文件每一行作为进行比较,排序规则:从第一个字符向后,依次按 ...
最新文章
- solrcloud Read and Write Side Fault Tolerance
- 关于线程池你不得不知道的一些设置
- opencv python 官方文档里的“sa”关键字是什么意思?(see also)
- Ansible 五(inventory文件 主机清单)
- 【转】C#中枚举类型与静态变量
- 近7万新冠域名一半是钓鱼网站?以色列老牌安全厂商Check Point推出全端保护新战略
- 程序设计与算法----枚举之完美立方
- 在线英文字符串大写转小写,小写转大写工具
- [转载] Python全栈(1)—— Python如何快速下载库与jupyter notebook 的基本使用
- php wordpress乱码,PHP問題:基于WordPress的CMS网站在文章摘要末尾出现乱码
- Node节点禁止调度(平滑维护)方式- cordon,drain,delete
- Unity插件-AVPro Video 使用案例之视频播放
- html项目的致谢词,毕业论文致谢词范文200字(精选10篇)
- Node.js 字体格式转换 ttf2eot ttf2woff ttf2svg
- java 最烧脑的继承题_小学生这5道烧脑数学题,难倒了无数大学生,答对的都是高智商...
- cad怎么转换成pdf格式
- 香港理工大学酒店管理html,香港理工大学大酒店管理硕士要求
- 如何用python做一个游戏主播_做一个游戏主播有多难?
- python 线性回归 技术方案亮点_python线性回归实战案例
- 武汉理工大学专升本计算机考试试题,2019年4月自考计算机组成原理考试真题试卷...
热门文章
- macos安装vscode_如何使用VSCode进行PostgreSQL开发及调试
- Java LineNumberInputStream available()方法与示例
- 数组tostring方法_数组toString()方法以及JavaScript中的示例
- Spring IoC?看这篇文章就够了...
- 使用Docker部署RabbitMQ集群
- SQL Server 不同数据库导入指定数据解决方案
- Auto activation triggers for Java(代码提示)功能扩展
- 什么从什么写短句_2020抖音文案短句:爱情、励志、伤感合集,值得收藏!
- 西工大计算机学院交流,2017西工大计算机交流+精贵资料
- oracle报28003,【翻译自mos文章】运行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...