【刷题】面筋-linux统计文件中字符串次数及文件夹下特定类型文件个数

法1:grep+wc

单个字符串

  • 语法:grep -o targetStr filename | wc -l

    • grep输出,wc -l按行统计,
    • 不加参数-o:每行重复只统计一个;
    • 加参数-o:一条数据里面有多个相同,会统计相同的次数
    • 注:单个字符串,字符串部分可以不加引号
  • 示例:

    • 如:统计task-hbase-transform.log中NullPointerException出现的次数
    • grep NullPointerException task-hbase-transform.log|wc -l

多个字符串

  • 语法:grep -o targetStr_1\|targetStr_2\|targetStr_3…… filename | wc -l
    • 与单个字符串的区别:用"|"连接多个字符串,其他相同。
    • 注:必须加引号(单、双都可以),不加引号结果不正确。

参数-o

  • grep -o:一条数据里面有多个相同,会统计相同的次数
  • grep:一条数据里面有多个相同,会统计一次次数

法2:awk

语法1:

  • awk -v RS="@#$j" '{print gsub(/targetStr/,"&")}' filename

语法2:

  • awk '{s+=gsub(/targetStr/,"&")}END{print s}' filename

两种方法对比

  • 小文件第一种方法最快0.003s,awk最快0.002s,一般都是比前者快
  • 当文件大的时候awk优势会更加明显

===========================================

其他

统计多个文件

  • 统计/logs/task-hbase-transform/路径下,每个文件中Exception关键字出现的次数,

  • 脚本统计:vim countex.sh 加入以下

#!bin/sh
for file in /logs/task-hbase-transform/* #日志文件路径
do
if test -f $file #如果是文件,统计异常数量,并输出到ex.log
then
e=`grep Exception "$file"|wc -l` #按行统计并输出
echo "Exception--"$file"--"$e >>ex.log #把统计内容输出到ex.log中
#echo $file 是文件 >> c.log
else
echo $file 是目录
fi
done
  • 添加执行权限:chmod +x countex.sh

  • 执行脚本:sh countex.sh

  • 查看统计结果:cat ex.log

统计文件夹下特定类型文件个数

  • 统计文件夹下/mount/taskdata 以.log结尾的文件数量

  • find /mount/taskdata -name *.log |wc -l #find查找特定类型并统计

  • 或者

  • ls /mount/taskdata/*.log |wc -l #ls列出特定类型并统计

  • 文件内查找用grep,查找文件用find

参考链接

END

posted @   anliux  阅读(1052)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2019-05-07 【学习总结】Python-3-风格各异的数值类型实例
2019-05-07 【学习总结】Python-3- 类型判断之 isinstance 和 type 的区别
2019-05-07 【学习总结】Python-3-多个变量赋值
2019-05-07 【学习总结】Python-3-运算符优先级
2019-05-07 【学习总结】Python-3-身份运算符 is 与 == 区别
2019-05-07 【学习总结】Python-3-逻辑运算符
2019-05-07 【学习总结】Python-3-算术运算符中的/和//
点击右上角即可分享
微信分享提示