在本文中,将展示几种查找 Linux 目录中的文件数量的不同方法。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、确山网络推广、小程序定制开发、确山网络营销、确山企业策划、确山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供确山建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
统计目录中的文件数量
统计目录中文件的最简单方法是使用ls每行列出一个文件,并将输出通过管道符传递给wc计算数量:
[root@localhost ~]# ls -1U /etc |wc -l
执行上面的 命令 将显示所有文件的总和,包括目录和符号链接。-1选项表示每行列出一个文件,-U告诉ls不对输出进行排序,这使 命令 的执行速度更快。ls -1U命令不计算隐藏文件。如果只想计算文件而不包括目录,请使用以下命令:
[root@localhost ~]# ls -1Up /etc |grep -v /|wc -l
-p选项强制ls将斜杠(/)指示符附加到目录雹帆埋。输出结果通过管道符传递到grep -v命令,排除包含斜杠的行,并计算数量。
为了更好地控制列出的文件,使用find命源蚂令而不是ls:
[root@localhost ~]# find /etc -maxdepth 1 -type f |wc -l
-type f选轿陵项告诉find仅列出文件(包括隐藏文件),-maxdepth 1将搜索限制到第一级目录。
递归统计目录中的文件
如果想要统计目录中的文件数量,并包括子目录中的,可以使用find命令:
[root@localhost ~]# find /etc -type f|wc -l
用来统计文件的另一个命令是tree,它以树状格式列出目录的内容:
[root@localhost ~]# yum -y install tree
[root@localhost ~]# tree /root
输出的内容底部会显示有多少目录,和多少文件。
总结
在本文中,将展示几种查找Linux目录中的文件数量的不同方法。
如上图,某个服务器的日志文件,通过命令
grep "Send kafka Success" 2021-08-01-info.log | grep "result_size:100"
可以得到相关日志。现在要求统计所有result_size累加的结果。
grep "Send kafka Success" 2021-08-01-info.log | grep -o -E "result_size:[0-9]+" | awk -F ':' 'BEGIN{print "开始统计result_size累加和"} {sumSize+=$2 } END{print "sumSize="sumSize}'
sed 命令可以很好的进行行匹配,但从某一行中精确匹配某些内容,则使用 grep 命令并辅以 -o 和 -E 选项可达到此目的。其中 -o 表示“only-matching”,即“仅匹配”之意。光用它不够,配合 -E 选项使用扩展正则表达式则凳誉威力巨大。
比如下面有一条文本 tmp.txt ,其中内容为枣察段:
{"aid":45,"path":"attachment/Mon_1112/2_1_5728040df3ab346.jpg"}
我们想从中过略出 aid 的值即 45 ,那么可以先如下这么做:
grep -o -E 'aid":[1-9]*' tmp.txt
得到的结果为:
aid":45
这时就好办没穗了,我们可以使用 awk 的 -F 选项指示出冒号分隔符,这样就容易过滤出 45 这个值来,整个命令综合如下:
grep -o -E 'aid":[1-9]*' tmp.txt |awk-F: '{print $2}'
参考文档:
一、行数统计方法厅郑
1、系统命令:wc -l filename
2、grep方法:grep -c "" filename
3、sed方法:sed -n '$=' filename
4、awk方法:awk 'END{print NR}'扮巧颂 filename
参考文件宽段