博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHEL6基础三十四之服务器维护基础命令④sort、uniq
阅读量:7112 次
发布时间:2019-06-28

本文共 3429 字,大约阅读时间需要 11 分钟。

sort

格式:sort [-options] filename[s]

功能:将文件的每一行作为一个单位,相互比较,最后将他们按升序输出,比较原则是从首字符向后,依次按ASCII码值进行比较。

[root@justin ~]# cat /home/passwd23413bananaPearorangepear[root@justin ~]# sort /home/passwd12334bananaorangepearPear[root@justin ~]#

options

-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;(将小写字母都转换为大写字母来进行比较

-b  :忽略最前面的空格符部分;

[root@justin ~]# cat /home/passwd|sort apple:10:2.5  nana:30:5.5orange:20:3.4pear:90:2.3[root@justin ~]# cat /home/passwd|sort -b apple:10:2.5  nana:30:5.5orange:20:3.4pear:90:2.3[root@justin ~]#

好像没啥区别?

-M  :将前面3个字母依照月份的缩写进行排序,例如 JAN, DEC 等等的排序方法;

-n  :使用『纯数字』进行排序(默认是以字符型态来排序的);

[root@justin ~]# cat /home/passwd1435302[root@justin ~]# cat /home/passwd |sort1233045[root@justin ~]# cat /home/passwd |sort -n1234530[root@justin ~]#

   默认以字符进行行间比较,30会先去比较3再去比较0,3比4小,所以30排在了4前面

-r  :反向排序;

[root@justin ~]# cat /home/passwd14352[root@justin ~]# cat /home/passwd |sort12345[root@justin ~]# cat /home/passwd |sort -r54321[root@justin ~]#

-o:重定向输出文件,默认是把结果输出到标准输出

[root@justin ~]# cat /home/passwd1422035[root@justin ~]# sort -n /home/passwd > /home/passwd1[root@justin ~]# cat /home/passwd1422035[root@justin ~]# cat /home/passwd11234520[root@justin ~]# sort -n /home/passwd > /home/passwd[root@justin ~]# cat /home/passwd[root@justin ~]# cp /home/passwd1 /home/passwdcp:是否覆盖"/home/passwd"? y[root@justin ~]# sort -n /home/passwd -o /home/passwd[root@justin ~]# cat /home/passwd1234520[root@justin ~]#

sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,如果将排序的结果通过重定向符(>)重定向到新文件中会正常显示,如果重定向到本文件中本文件内容就会被清空,只是不能用重定向符而需要使用参数-o

-u  :就是 uniq ,相同的数据中,仅出现一行;

[root@justin ~]# cat /home/passwd1234323[root@justin ~]# cat /home/passwd|sort1223334[root@justin ~]# cat /home/passwd|sort -u1234[root@justin ~]#

-t  :分隔符,默认是用 [tab] 键来分隔;

-k  :以那个区间 (field) 来进行排序的意思

文件/home/passwd里有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格,现以水果数量来排序,也就是以第二列来排序,这时就需要用到-t选项来指定分隔符(和前面awk的-f,cut的-d类似),然后通过-k来指定列数

[root@justin ~]# cat /home/passwdnana:30:5.5apple:10:2.5pear:90:2.3orange:20:3.4[root@justin ~]# sort -n -t ':' -k 2 /home/passwdapple:10:2.5orange:20:3.4nana:30:5.5pear:90:2.3[root@justin ~]# sort -nr -t: -k 2 /home/passwdpear:90:2.3nana:30:5.5orange:20:3.4apple:10:2.5[root@justin ~]#

以冒号为分隔符安装第二列的数字为单位进行降序排序,如果第二列相同再安装第三列以数字为单位进行升序排序

[root@justin ~]# cat /home/passwdnana:30:5.5apple:10:2.5pear:10:2.3orange:20:3.4[root@justin ~]# sort -t ':' -k 2nr -k 3n /home/passwdnana:30:5.5orange:20:3.4pear:10:2.3apple:10:2.5[root@justin ~]#


uniq

格式:uniq [-ptions]

功能:去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的

option:

-i   :不区分大小写 ;

[root@justin ~]# sort /home/passwd|uniqaprAprJanJul[root@justin ~]# sort /home/passwd|uniq -iaprJanJul[root@justin ~]#

-c  --count:在每行前加上表示相应行目出现次数的前缀编号

[root@justin ~]# cat /home/passwd1234323[root@justin ~]# cat /home/passwd|sort1223334[root@justin ~]# cat /home/passwd|sort|uniq -c      1 1      2 2      3 3      1 4[root@justin ~]#

-u  :只显示唯一的行

[root@justin ~]# sort /home/passwd|uniq -ic      2 apr      1 Jan      1 Jul[root@justin ~]# sort /home/passwd|uniq -iuJanJul[root@justin ~]#

-d --repeated:只输出重复的行

[root@justin ~]# sort /home/passwd|uniq -ic      2 apr      1 Jan      1 Jul[root@justin ~]# sort /home/passwd|uniq -idapr[root@justin ~]#

-D --all-repeated: 只输出重复的行,不过有几行输出几行

[root@justin ~]# sort /home/passwd|uniq -ic      2 apr      1 Jan      1 Jul[root@justin ~]# sort /home/passwd|uniq -iDaprApr[root@justin ~]#

-f --skip-fields=N:-f 忽略的段数,-f 1 忽略第一段

-s --skip-chars=N:根-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符

转载地址:http://kylhl.baihongyu.com/

你可能感兴趣的文章
Java验证
查看>>
一道CSS笔试题
查看>>
慕课网_《模式的秘密之单例模式》学习总结
查看>>
Struts2开发入门指南
查看>>
Ajax实现原理
查看>>
《深入理解ES6》笔记——解构:使数据访问更便捷(5)
查看>>
不再碎片化学习,快速掌握 H5 直播技术
查看>>
命令行神器推荐
查看>>
阿里云视频直播的相关准本工作(验签)
查看>>
2017-07-12 前端日报
查看>>
一个可供创业公司借鉴的持续集成技术实践
查看>>
PAI在线深度学习开发产品DSW发布
查看>>
Windows的Linux子系统搭建数据科学环境
查看>>
Branckets快捷键
查看>>
windows下nodejs的安装和hello world小应用的创建
查看>>
赶紧登陆百家号看看,有没有被降级
查看>>
使用Eclipse进行PHP的服务器端调试
查看>>
在Visual Sutdio 2017中使用boost库
查看>>
Java中的‘锁’- synchronized、ReentrantLock、ReentrantReadWriteLock
查看>>
让网站成为 HTTPS 安全站点
查看>>