linux(centos8):用sort对文本内容排序
一,sort的用途
1,作用:
sort命令用于将文本文件内容加以排序。
它能够以行为单位来排序
2,sort常与uniq搭配使用,原因:
用uniq命令去重时,
需要相同的每行位置相邻才能生效,
所以通常要在uniq之前先用sort做排序
而在uniq做统计之后,通常也会根据重复次数做排序,
这种情况下也会用到uniq
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看sort命令所属的包
- [root@blog ~]$ whereis sort
- sort: /bin/sort /usr/share/man/man1p/sort.1p.gz /usr/share/man/man3/sort.3pm.gz /usr/share/man/man1/sort.1.gz
- [root@blog ~]$ rpm -qf /bin/sort
- coreutils-8.4-31.el6_5.2.x86_64
如果提示找不到命令或命令被误删除,
可以用dnf安装
- [root@blog ~]$ dnf install coreutils
三,查看sort命令的版本和帮助
1,查看版本
- [root@loadserver ~]$ sort --version
- sort (GNU coreutils) 8.4
- Copyright (C) 2010 Free Software Foundation, Inc.
- License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
- This is free software: you are free to change and redistribute it.
- There is NO WARRANTY, to the extent permitted by law.
- Written by Mike Haertel and Paul Eggert.
2,查看帮助
- [root@loadserver ~]$ sort --help
3,查看手册
- [root@loadserver ~]$ man sort
四,sort命令在运维工作中的例子
1,统计404的url
#-n: --numeric-sort 按照数字的值进行比较
#-k:--key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2
按指定的列做排序
#-r:--reverse 反序排列
- [root@blog nginxlogs]$ awk '$9==404{print $7}' ilc_ssl.access.log | sort | uniq -c | sort -k1 -nr
- 73 /robots.txt
- 37 /apple-touch-icon.png
- ...
2,统计404的ip的出现次数
- [root@blog nginxlogs]$ awk '$9==404{print $1}' ilc_ssl.access.log | sort | uniq -c | sort -k1 -nr
- 10 61.152.68.150
- 9 156.229.7.2
- ...
3,对系统中的用户按uid做倒序排列:
#-t:指定排序用的字段的分隔符
- [root@blog ~]$ sort -t ":" -k 3 -nr /etc/passwd
4,对排序结果去重
例子:打印所有引发404的ip,按ip排序并去除重复
#-u: 去除重复
- [root@blog nginxlogs]$ awk '$9==404{print $1}' ilc_ssl.access.log | sort -t ' ' -u
说明:sort的去重不具备uniq统计次数的功能
5,按两个字段做排序:
-k7 : 按第七列正序排列
-k3nr :按第三列以数值倒序排列
- [root@blog ~]# sort -t: -k7 -k3nr /etc/passwd
6,按指定的字符做排序:
按第一列的第1个到第3个字符做排序
- [root@blog ~]# sort -t: -k1.1,1.3 /etc/passwd
六,查看centos的版本
- [root@blog ~]$ cat /etc/redhat-release
- CentOS Linux release 8.0.1905 (Core)
linux(centos8):用sort对文本内容排序的更多相关文章
- linux(centos8):用cut显示文本内容的指定列
一,cut命令的用途 从一个文本文件或者文本流中提取文本列 分别用: 字节.字符.字段 作为单位进行提取 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.co ...
- linux下批量查找/替换文本内容
一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令: 1.批量查找某个目下文 ...
- linux实用小命令--查看文本内容
一.cat命令 $ cat [参数]filename 这还有一些可以和cat命令一起用的参数,可能对你有所帮助. 1.-n 参数会所有的行加上行号: $ cat -n test1 2.这个功能在检查脚 ...
- linux(centos8):用uniq去除文本中重复的行(去重)
一,uniq命令的用途 1, 作用: 从输入文件或标准输入中找到相邻的匹配行, 并写入到输出文件或标准输出 2, 使用时通常会搭配sort使用 说明:刘宏缔的架构森林是一个专注架构的博客,地址:htt ...
- Linux sed命令实现替换文本内容
/root/data/code-s3201/publish_codex/deploy/db.properties db.properties中的 1.0.0.6 替换为 1.0.0.7 sed -i ...
- [转帖]linux Shell sort按照指定列排序
linux Shell sort按照指定列排序 https://blog.csdn.net/weixin_38308151/article/details/80760133 kubectl get p ...
- linux常用命令之--文本编辑和文本内容查看命令
linux的文本编辑和文本内容查看命令 1.文本编辑命令 vi:用于编辑文本文件,基本上可以分为三种模式,分别是一般模式.编辑模式.命令行模式. 一般模式:当编辑一个文件时,刚进入文件就是一般模式. ...
- Linux的文本编辑和文本内容查看命令
Linux的文本编辑和文本内容查看命令 1.文本编辑命令 vi:用于编辑文本文件,基本上可以分为三种模式,分别是一般模式.编辑模式.命令行模式. 一般模式:当编辑一个文件时,刚进入文件就是一般模 ...
- linux(六)之文本操作
接下来我们一起来看一下再linux中怎么去对文本进行操作的 一.文本文件 既然要操作文本,所以我们要对文本有一个了解,那什么是文本文件呢. 文本文件是一种由若干行字符构成的计算机文件.文本文件存在于计 ...
随机推荐
- 跟我一起学.NetCore之文件系统应用及核心浅析
前言 在开发过程中,肯定避免不了读取文件操作,比如读取配置文件.上传和下载文件.Web中html.js.css.图片等静态资源的访问:在配置文件读取章节中有说到,针对不同配置源数据读取由对应的ICon ...
- Intersection of Two Prisms(AOJ 1313)
原题如下: Suppose that P1 is an infinite-height prism whose axis is parallel to the z-axis, and P2 is al ...
- Minimizing maximizer(POJ 1769)
原题如下: Minimizing maximizer Time Limit: 5000MS Memory Limit: 30000K Total Submissions: 5104 Accep ...
- 你想了解的分布式文件系统HDFS,看这一篇就够了
1.分布式文件系统 计算机集群结构 分布式文件系统把文件分布存储到多个节点(计算机)上,成千上万的计算机节点构成计算机集群. 分布式文件系统使用的计算机集群,其配置都是由普通硬件构成的,与用多个处理器 ...
- tagCould3d 移动端优化版
针对https://github.com/bitjjj/JS-3D-TagCloud这个版本的做了移动端性能优化(使用transform做偏移及缩放,优化帧).基本原理一致. class TagCou ...
- 【Processing日常2】群星1
之前在CSDN上发表过: https://blog.csdn.net/fddxsyf123/article/details/79747064
- golang开发:select多路选择
select 是 Golang 中的一个控制结构,语法上类似于switch 语句,只不过select是用于 goroutine 间通信的 ,每个 case 必须是一个通信操作,要么是发送要么是接收,s ...
- myisamchk是用来做什么的?MyISAM Static和MyISAM Dynamic有什么区别?
myisamchk是用来做什么的? 它用来压缩MyISAM[歌1] 表,这减少了磁盘或内存使用. MyISAM Static和MyISAM Dynamic有什么区别? 在MyISAM Static上的 ...
- 前端er,你真的会用 async 吗?
async 异步函数 不完全使用攻略 前言 现在已经到 8012 年的尾声了,前端各方面的技术发展也层出不穷,VueConf TO 2018 大会 也发布了 Vue 3.0的计划.而在我们(我)的日常 ...
- Python-__init__ 和 __new__区别和原理
__init__ 和 __new__区别 1. 从传递参数角度看,__init__第一个参数是实例本身, __new__传递的是类本身 2. 从执行顺序角度看,__new__方法执行在 __init_ ...