c++ sort 从大到小排序_如何用sort命令来实现:多个关键字排序、去除重复行等用法...

概述

对于运维的朋友,sort命令相信都不会陌生,今天简单做个介绍,sort命令用于将文本文件内容加以排序,将输入行按照键值字段与数据类型选项以及locale排序。

下面介绍下相关的参数和一些实例,带大家复习下这方面内容~


功能

将文本文件内容加以排序。

语 法:

sort [options] [file(s)] 

补充说明:sort可针对文本文件的内容,以行为单位来排序。

参数:

 -b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -m 将几个排序好的文件进行合并。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t 指定排序时所用的栏位分隔字符。 +- 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 --help 显示帮助。 --version 显示版本信息

实例

下面通过几个例子来讲述Sort的使用。

1、sort命令对text文件中各行排序后输出其结果

在原文件的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字符处继续进行比较。

3355a6bd24a4ce26fff4f999b9efde39.png

用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。

$ sort text>result
75ecb934ad47fbd76855b4f82011d6ba.png

2、以字段排序

以冒号隔开的第一个字段:用户名称进行排序

sort -t: -k1,1 /etc/passwd
10eed0c6cbc6f590c4d04714aae81273.png

3、根据多个关键字排序

sort -t : -n -k 5b,5 -k 3,3 /etc/passwd

由于第一个关键字已经有了一个修饰符b,所以sort命令会认为第1个关键字不再需要修饰符,只将-n选项作用于第2个关键字-k 3,3

稳定排序:在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变

2c1b75502226a50eb05d190ff750e42c.png

4、把排序结果输出到原文件中

sort -r test.txt -o sort.txt
77c0c3b814f6e727153bce9306fd0a51.png

5、去除重复行

sort -u test.txt 
6a43bdfa775f2c2ecbe89c8f869949bb.png

工作中其实经常用的比较多是用awk、xargs跟sort去做一些结合,后面小编会分享更多linux一些命令方面的内容,感兴趣的朋友可以关注一下~

a3c29850ce8d11f6c058338704b1b2a3.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值