linux(centos8):用sort对文本内容排序
2023-09-14 09:01:19 时间
一,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中修改文件权限的方法(linux如何修改文件)
- Linux查询网络端口:快速掌握端口使用情况(linux查询网络端口)
- C调用Linux,开发越来越好的软件(c开发linux软件)
- 使用Linux操作系统驱动外置网卡(linux外置网卡)
- Qt 5.7 在 Linux 上的发布(qt5.7linux)
- Linux系统快速基础配置指南(linux基础配置)
- Linux下函数处理路径的技巧(linux路径函数)
- Linux安全:利用入侵检测工具保卫系统(linux入侵检测工具)
- Linux工程师:掌握Linux技术并运用之(linux工程师工作内容)
- Linux经典内容大精选(linux典藏大系)
- Linux磁盘挂载:解放硬盘空间(linux磁盘空间挂载)
- 修复Linux扇区:一种方法(扇区修复linux)
- Linux下运行Python文件的指南(py文件linux运行)
- Linux的演进史:增强的分支功能(linux的分支)
- Linux之分支:探索开源丰富多彩的世界(linux的分支)
- 27岁的人时刻学习Linux技术(27岁学linux)
- “Linux文件夹排序技巧:让你的文件管理更方便!”(linux文件夹排序)
- Linux命令模式入门:25个基础命令大全(linux进入命令模式)
- 如何恢复在 Linux 中误删除的文件?(linux误删除)
- 【技巧揭秘】如何在Linux系统中查看log文件(linux如何查看log)
- Linux下精准修改文件内容的方法(linux文件内容修改)
- 安装Linux系统之旅:KVM的使用方式(kvm安装linux)
- Linux实现自动时间同步的方法及其优势(linux自动时间同步)
- 【25字中文文章标题】 Linux名称排序:一个完整、有序的列表(linux名称排序)
- Linux系统中磁盘块的作用与管理(磁盘块linux)
- 命令Linux下使用Head命令显示文件头部内容(linux 中head)
- Linux中快速高效的内容搜索实践(linux内容搜索)
- Linux实时查看最新文件内容(linux动态查看文件)