【刷题】面筋-linux统计文件中字符串次数及文件夹下特定类型文件个数
2023-09-14 09:00:39 时间
法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
相关文章
- linux安装wget命令_linux下载文件到本地命令
- 权限Linux文件权限掌握关键!(linux什么是文件)
- Linux输出之换行绝技(linux输出换行)
- 地址Linux系统下配置IP地址保存方法(linux保存ip)
- 合并Linux文件合并:一步一步分享(linux小文件)
- 给文件设置Linux可执行权限(linux文件可执行权限)
- 操作系统Linux:实现最稳定桌面操作系统(最稳定的linux桌面)
- 使用Linux命令快速上传文件(linux命令上传文件)
- Linux网络编程:从初学者到职业程序员的一路见证(linux网络编程心得)
- Linux 基础命令快速安装指南(linux基础命令安装)
- 解决Linux下ls命令无法使用的办法(linux无法ls)
- Linux 下的批量文件重命名(批量重命名linux)
- Linux 下批量重命名文件的简单方法(批量重命名linux)
- Linux的分支:开放源码的多元世界(linux的分支)
- 手把手教你生成Linux内核模块的ko文件(linux生成ko文件)
- Linux命令——递归删除文件(linux递归删除文件)
- 学会Linux命令,轻松重命名文件(linux命令重命名文件)
- 量Linux中文件夹文件数量统计(linux文件夹文件数)
- 深入解析嵌入式Linux驱动程序实现的关键技术(嵌入式linux驱动程序)
- 深入理解Linux NFS配置技巧,提升数据共享效率(linux的nfs配置)
- 夹Linux下如何快速删除子文件夹(linux 删除子文件)
- Linux查看触发文件:一种简单的方法(linux查看动态文件)