搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
煮酒与君饮
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
MacOS配置python环境变量
2
量化机器人对市场数据的处理与分析
3
palera1n - 开源的 Nintendo Switch 自动注入工具
4
【鸿蒙】开发之页面跳转组件—实现页面跳转方法汇总!_鸿蒙开发页面跳转
5
csdn的insCode怎么用IDE和linux终端_csdn inscode
6
NLP学习之:BERT代码复现(3)self-attention 和 MultiHead 多头注意机制_bert multihead attention
7
Yolo-world+Python-OpenCV之摄像头视频实时目标检测_yolo-world 摄像头
8
Hystrix 简单请求合并_resttemplate 合并请求
9
ABB Robot Studio 软件基本操作要点_robotstudio教程
10
数据库7—非关系型数据库
当前位置:
article
> 正文
使用Sort 对文件排序详解_sort -n
作者:煮酒与君饮 | 2024-07-10 18:00:12
赞
踩
sort -n
当我们处理
大量数据时,linux有个常用命令sort,对数据默认进行字符排序,然后标准输出。
sort 命令原理
默认情况下,sort命令将文件每一行作为进行比较,排序规则:从第一个字符向后,依次按照ASCII码值进行比较,然后依次输出。
看上去似乎很简单,但是当排序数字时:
并没有按照数字大小来排序
sort -n 数字排序
默认情况下,sort将数字当做字符而执行标准字符排序,不是按照大小来排序。实现按照大小排序,需要-n 参数
sort -M 按月排序
分析日志文件时,开头经常有个时间戳,sort -M 可以实现按照月份来排序。
sort常用参数
-n 按照字符数值来比较
-M 按照月份比较
-f 忽略字母大小写,默认情况下,会将大写字母排在前面
-r 按照降序排列
-k --key=post1,[post2] 按照指定范围比较,从post1 位置开始,如果制定了post2,到post2 位置结束
-t 指定一个用来区分键位值得字符来比较
-b 忽略每一行前的所有空白字符,从第一个可见字符比较。
例如: 将 /etc/password 文件根据用户ID值大小进行数值排序
可以用
-k 和-t 实现按字段分隔的数据进行排序,用-k 参数指定定位分隔符 ":",用-t 参数指定排序的字段,及
列数
!
-K 参数扩展
当我们编写shell 脚本是,经常会用到sort -k 一些参数,已下面例子具体说明:
第一列:姓名 第二列:身高 第三列:年龄 第四列:工资
a. 若要将上面文件中,按照员工姓名进行排序
按照姓名,第一个区域进行比较即可,-k 1,直接得到结果
b.
若要按照身高来比较,进行排序。
按照身高,数字要加-n,第二个区域比较即可, -k 2,但是lisi 和wangwu 身高一样,这时默认会按照第一区域进行比较,所以lisi在前。
C.
若按照身高进行排序,身高相同的员工按照工资升序排序。
按照身高和工资,这样设定了区域, 加入 -k2 -k4 ,从第2个区域开始比较,如果相同,再以第4个区域排序。(若需要,可以一直在后面加上区域)。
d. 若要按照员工工资降序排列,工资相同的以年龄升序排列。
先比较工资,要先比较第四个区域,另外要降序,则是 -k4r 在前, 再比较年龄,-k2 ,默认升序,所以为 -k4r -k2.
因为比较的都是数字,所以 -n 参数前置,还可以写成:
sort -t ‘ ’ -k4rn -k3n sort-test1
sort -k参数扩展二
了解-k选项的语法格式,如下:
[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。
如果不设定End部分,那么就认为End被设定为行尾。
FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。
a. 按照姓名的第二个字母排序:
-k1.2 ,比较的第一个区域的第2个字母开始,到本区域的最好一个字符结束,来进行比较。故zhangsan 和zhaoxiaoliu ,n在o的前面,所以zhangsan排在前面。
b. 按照姓名的第二个字母排序,如果相同的则按照工资进行降序排列:
因为限定了姓名第二个字母的比较范围,因此第一区域必须FStart和CStar 指定,及-k1.2,1.2 ,再比较工资第四个区域,数字逆序排列,故为-k4nr。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/煮酒与君饮/article/detail/807117
推荐阅读
article
C
语言
-
交换
排序
(
Swap
Sort
)_
交换
排序
法
c
语言
...
1.冒泡
排序
(Bubble
Sort
):void Bubble
Sort
(int *r){ int i,j; for(i...
赞
踩
article
冒泡排序
(
Bubble
Sort)...
冒泡排序
是一定典型的交换排序_
冒泡排序
冒泡排序
冒泡排序
...
赞
踩
article
Python
列表
sort
()
函数
使用详解_
sort
函数
python
_
python
里
的
sort
函数
...
python
里
的
sort
函数
最后 ...
赞
踩
article
排序
(
sort
)_
sort
排序
...
本文 为 基本的几大
排序
_
sort
排序
sort
排序
...
赞
踩
article
c++
中
多种类型
sort
()排序的用法(数组、
结构
体、
pair
、
vector
)_
c++
sort
p...
本文主要是
sort
对不同类型进行排序的演示_
c++
sort
pair
c++
sort
pair
...
赞
踩
article
逆序排列:掌握
sort
()
函数
从大到
小
排序
的技巧_
sort
如何
从大到
小
排序
...
总结
sort
()
函数
从大到
小
排序
的重要性和实用性。鼓励读者实践并探索更多
排序
相关的知识。_
sort
如何
从大到
小
排序
sor...
赞
踩
article
数组
方法
sort
()
排序
错乱问题
_.
sort
()
排序
两位数
不对...
一、问题在JavaScript中,
数组
使用
sort
()后发现有
排序
不正确的情况,如下:let arr = [1, 2, ...
赞
踩
article
sort
排序
使
用
介绍
_
sort
排序
怎么
用
...
sort
排序
使
用
介绍
_
sort
排序
怎么
用
sort
排序
怎么
用
...
赞
踩
article
快速
排序
、
sort
、q
sort
、拓展
排序
_
快速
排序
和
sort
函数...
sort
_
快速
排序
和
sort
函数
快速
排序
和
sort
函数 目录 一,
快速
排序
1,原理 2...
赞
踩
article
sort
排序
_
sort
(
a
,
a
+ (
n
+
n
- m))
;
...
默认的
sort
函数是按升序排
sort
(
a
,
a
+
n
)
;
两个参数分别为待
排序
数组的首地址和尾地址STL中
sort
默认是字...
赞
踩
article
Linux
-
sort
排序
_
linux
sort
排序
多条件
排序
...
概述
sort
命令是在
Linux
里非常有用,它将文件进行
排序
,并将
排序
结果标准输出。
sort
命令既可以从特定的文件,也可以...
赞
踩
article
107.
sort
( )方法-
排序
列表
元素
(上)_
sort
对
列表
中
的
元组排列...
【目录】
sort
[sɔːt]:整理、
排序
。
sort
的
中文意思是
排序
。
sort
是
列表
对
象
的
一个方法。【功能】
对
列表
进行排...
赞
踩
article
sort
()
排序
函数
原理
_
sort
排序
原理
...
sort
()
排序
函数
原理
sort
()如果不传入
排序
函数
作为参数,则数组按照字母顺序升序
排序
,更准确地说是按照ASCII...
赞
踩
article
排序
(
Sort
)_
排序
sort
...
排序
1、
排序
的基本知识2、 插入类
排序
2.1 直接插入
排序
2.2 折半插入
排序
2.3 希尔
排序
3、 交换类
排序
3.1 ...
赞
踩
article
TimSort
--
Arrays
.
sort
()和
Collections
.
sort
()使用
的
是Mer...
乔西:在JDK1.7以前我们几乎就是按照
MergeSort
来
实现
Arrays
.
sort
()
的
。只是细节上略有差别。当集合...
赞
踩
article
冒泡排序
详解(
Bubble
Sort
)...
构造的过程就是将无序的序列构造成一个堆的过程。堆的定义是:对于任意一个非叶子节点 i,其左子节点为 2i+1,右子节点为...
赞
踩
article
10
个数
冒泡
排序
流程图
_
排序
算法之
冒泡
排序
(
bubble
sort
)...
从本文开始,作者将和大家一起学习数据结构与算法,本文将从最简单的
排序
算法开始,目标是一周更新一篇。想象一个气泡从水底上升...
赞
踩
article
三大经典
排序
:
冒泡
排序
(Bubble
Sort
)、
快速
排序
(Quick
Sort
)、
插入
排序
(Ins...
在计算机编程中,特别是在使用C语言这样的底层语言时,
排序
算
法
是非常基础且重要的。在众多
排序
算
法
中,有三种被广泛认为是经典...
赞
踩
article
sort
algorithm
(2)...
sort
algorithm
(2)merge_
sort
千好万好对空间不友好,不仅额外需要辅助数组空间(tmp),还在tm...
赞
踩
相关标签
c语言
排序算法
数据结构
algorithm
算法
python
学习
面试
c++
数组排序
linux
sort
js