sort -nr作用 linux,sort命令

1.sort命令

sort命令可以给文本进行排序。sort命令操作的是行。

shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。

2.sort的使用

语法:

sort [选项] ...  [文件] ...

选项:

-b:忽略前面空格。

-c:测试文件是否已经排序。

-d:根据字典顺序排序,仅比较数字 字母 空格等字符。

-f:忽略大小写。

-i:仅比较可打印字符。

-n:纯数字排列

-R:根据哈希值随机排序。

-r:反向,颠倒顺序。

-k:定义排序关键字。原来的:第几个区间,与t相辅。

-t:分隔符

-m:仅仅合并已经排序好的文件,不执行排序操作。

-s:稳定的排序算法。

-o:排序结果写入文件,而不是标准输出到设备。

-u:相同的行只留一行

-M:月份

文件:

file:多个文件要使用空格分隔。

3.范例

3.1 不加选项进行升序排序

直接执行sort,不加选项,默认根据第一列的信息进行排序。

2595705588a4444d12827dd5e504203a.png

3.2 使用单行关键字排序 -k

默认是根据第一列来排序,使用-k选项来定义排序的关键字,语法如下:

-k pos1 [, pos2]

pos1 表示起始位置,pos2 表示结束位置。如果关键字的第一列相同,进行比较第二列。

-k pos 并不是表示只比较 pos 列,而是比较从 pos 列,到行尾的列。

1afa733beca54349208bf38e81a6e2c3.png

如何根据日志里面小时进行排序呢?(日志里的小时和日期写在一起,还有英文)

那就根据某列的第几个字符开始。格式如下:

-k pos1[.start] [, pos2[.end]]

pos1 表示起始位置,pos2 表示结束位置。

start 表示起始列的第几个字符。end 表示结束列的第几个字符。

案例略。

3.3 根据关键字降序排序 -r

默认的需要是升序排序,如果想倒叙排列,需要使用-r选项。

3fcc654c242808b563e9324bcf1e1f94.png

3.4 数值列的排序 -n

默认的排序是一个字符一个字符的比较。不能正确的比较出数值的大小,如果想比较出数值的大小需要使用 -n 选项。语法如下:两个等价

sort -n -k 2 1.txt

sort -k 2,2n 1.txt

上面的默认的排序,下面的是数值排序。上面的就把992排在了最下面。因为第一个字符9最大。

e18d8bb7730c83106be1e1dbc96f510c.png

3.5 自定义分隔符 -t

如果分隔符不是空格或者制表符,需要使用-t选项来指定分隔符。

sort -t ":" -r -k 3 /etc/passwd

d9ec0f19828299eca8d2e192bc1570a5.png

3.6 删除重复的行 -u

使用-u选项,可以去掉重复的行,但是不知道为什么去不掉带空格的那行。

d9e6cbefe8171dcb5762b2065bd87a28.png

3.7 根据多个关键字排序 -k -k

根据第一个列升序,和第二列数字倒叙,应该怎么排。

sort -k 1,1 -k 2,2rn 1.txt

a9bed6bcf06fde2eacfd3e4dd660a417.png

3.8 合并文件

sort可以将两个文件合并,同时对文件内容进行排序,语法如下:

sort file1  file2 ... > filen

21ba4163cd9a629c923c4090ee574d5b.png

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值