当前位置: 首页 > news >正文

Linux文本文件管理003

★排序、去重、统计★

1)排序

sort -n按照数值排序
-r降序排列

2)去重

uniq 过滤相邻、重复的行
-c 对重复行计数

3)统计

wc 统计文件中的字节数、单词数、行数
-l 显示行数

今天通过使用grep、awk、cut指令和上面几个选项提取文本文件的信息

方法1:

[root@localhost nginx]# cat access.log | awk '{print $1}'| sort -rn | uniq -c | sort -rn | head 
Cat 查看文本文件
| awk '{print $1}' 通过管道| 将cat信息传输给awk
{print $1}限制每一行的第一个字段
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法2:

[root@localhost nginx]# awk '{print $1}' access.log | sort -rn | uniq -c | sort -rn | head awk '{print $1}' access.log 通过awk指令打印每一行的第一字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法3:

[root@local-host nginx]# cut -d' ' -f1 access.log | sort -rn | uniq -c | sort -rn | head 
# cut -d' ' -f1 access.log  -d’ ’指定字符分隔符为单个空格
-f1 每行提取第一个字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法4:

[root@localhost nginx]# grep -oP '^\S+' access.log | sort | uniq -c | sort -nr | head 
grep -oP '^\S+' access.log 
-P开启perl正则表达式    
-o 只输出匹配的内容
'^\S+'   ^字符串定位行首     \S 匹配任何非空白字符 包括字母、数字、标点符号。 除了空格、制表符、换行符等空白字符之外的任何字符     +  一个量词  \S+匹配一个或者多个非空白字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法5:

[root@localhost nginx]# awk '{ip[$1]++} END {for (i in ip) print ip[i], i | "sort -rn | head" }' access.log 
awk '{ip[$1]++}     awk  读取每一行    
{ip[$1]++}   ip[] 关联数组名为ip
$1限定第一个字段
++ 检查第一字段 若已存在会自动加1 ,若不存在,会自动创建初始化为1
print ip[i], i打印出每个IP地址及其出现次数。注意,这里先打印次数再打印IP地址,以匹配最终排序的需求,代表每一行ip出现的次数
sort -rn | head先将awk传输的数据排序再将数据前10打印出来

在这里插入图片描述
今天先分享到这里,希望能够帮助到大家……

http://www.lryc.cn/news/356394.html

相关文章:

  • uniapp Androud 离线打包升级APK,覆盖安装不更新问题
  • 【算法实战】每日一题:设计一个算法,用最少数量的矩形覆盖一系列宽度为d、高度为w的矩形,且使用矩形不能超出边界
  • 外贸仓库管理软件:海外仓效率大幅度提升、避免劳动力积压
  • 6.8 LIBBPF API(七,bpf_core_read.h 函数,定义,枚举)
  • 电脑卸载linux安装windows后每次开机都出现grub
  • 总结 HTTPS 的加密流程
  • Spring的FactoryBean多例问题
  • [nextjs]推荐几个很好看的模板网站
  • 《当微服务遇上Ribbon:一场负载均衡的华丽舞会》
  • 简单随机数据算法
  • js画思维导图代码2
  • 使用 Flask 实现异步请求处理
  • 关于c++的通过cin.get()维持黑框的思考
  • fastadmin接口输出图片 自动拼接网站URL
  • VMware Workstation 不可恢复错误:(vmui) 错误代码0xc0000094
  • DockerNetwork
  • QT学习(20):QStyle类
  • hadoop学习之MapReduce案例:输出每个班级中的成绩前三名的学生
  • 【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
  • 学习thinkphp的循环标签
  • 根据标签名递归读取xml字符串中element
  • Ovid医学库文献如何在家查找下载
  • 在已创建的git工程中添加.gitignore
  • MR混合现实情景实训教学系统在临床医学课堂上的应用
  • 就说说开一家公司的流程和成本
  • 【前端】面试八股文——数组扁平化的实现
  • 2005-2022年各省全体居民人均可支配收入数据(无缺失)
  • JVM调优,何时调优,怎么调优,面试的时候调优
  • 朗之万动力学(Langevin dynamics)
  • 双指针技巧,链表