[Linux]结合awk列举大于指定容量大小所有文件目录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[Linux]结合awk列举大于指定容量大小所有文件目录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1590字,纯文字阅读大概需要3分钟。
内容图文
业务背景
/home/pms
目录是工作目录,现在该目录占用硬盘空间过大,需要清理,现在需要列举该目录中所有大于200MB的子文件目录,以及该子文件目录的占用空间
脚本实现
du -h --max-depth=10 /home/pms/* | awk ‘{ if($1 ~ /M/){split($1, arr, "M")}; if(($1 ~ /G/) || ($1 ~ /M/ && arr[1]>200)) {printf "%-10s %s\n", $1, $2} }‘ | sort -n -r
其中
du -h--max-depth=10 /home/pms/*
结果如下
$ du -h --max-depth=10 /home/pms/*
0 /home/pms/addressCountMap
12K /home/pms/bigDataEngine/conf
1.7M /home/pms/bigDataEngine/analysis/warning
33M /home/pms/bigDataEngine/analysis/log
...
下面这个awk语句,作用是判断第一个参数,进行字符串匹配,如果是M的话,按字符M进行截取
if($1 ~ /M/){split($1, arr, "M")};
下面这个awk语句,作用是判断第一个参数,进行字符串匹配:
-
M,判断容量是否大于200MB,是则直接输出参数1和参数2
-
G,直接输出参数1和参数2
if(($1 ~ /G/) || ($1 ~ /M/ && arr[1]>200)) {printf "%-10s %s\n", $1, $2}
输出结果
$ du -h --max-depth=10 /home/pms/* | awk ‘{ if($1 ~ /M/){split($1, arr, "M")}; if(($1 ~ /G/) || ($1 ~ /M/ && arr[1]>200)) {printf "%-10s %s\n", $1, $2} }‘ | sort -n -r
1018M /home/pms/recsys/algorithm/schedule/project/mixproduct
948M /home/pms/recsys/algorithm/schedule/project/contentbasedrelatedproduct
940M /home/pms/recsys/algorithm/schedule/project/view_after_viewing/cf
922M /home/pms/new_product_import
913M /home/pms/db_engine
903M /home/pms/recsys/algorithm/schedule/project/campus
862M /home/pms/recsys/algorithm/schedule/project/company/user
...
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/yeweiouyang/article/details/47427123
内容总结
以上是互联网集市为您收集整理的[Linux]结合awk列举大于指定容量大小所有文件目录全部内容,希望文章能够帮你解决[Linux]结合awk列举大于指定容量大小所有文件目录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。