编写shell脚本删除当前目录下空log文件,并打印删除文件数目?

编写shell脚本删除当前目录下空log文件,并打印删除文件数目?,第1张

试试这个命令

ls -l *.log | awk 'BEGIN{sum=0}{if ($5==0) {print $NFsystem("rm -rf $NF")++sum}}END{print "Delete how many empty log files: " sum}'

思路是如下:

用 ls -l 查看文件大小,然后利用 awk 工具找到大小为 0 的文件,调用 rm 命令将其删除,并计数到 sum 变量,最后打印统计信息。

可以通过sed命令,将空行和注释行删除掉。

1、以下面的文档内容为例,#号开头的是注释,然后有很多空行,文档名为1.tt。

2、执行如下命令

sed '/^#.*\|^$/d' 1.tt说明:^#.*说明以#字符开头的行,^$表示手空行,中间的\|是转义,表示或。d表示删除。

先建脚本:clearspace.sh

给脚本添加执行权限 chmod +x clearspace.sh   

编辑脚本内容:

     

       touch tmpFile   # 建临时文件

      sed 's/\ //g' $1 >temFile  #sed s命令 将空格替换 重定向到临时文件

      cat temFile >$1  #覆盖原文件

      rm -f temFile   #删除临时文件

      echo 'OK,DONE!'

     

执行脚本 ./clearspace.sh souceFile

实例:

执行前:

查看原文件:cat source.txt

sfd as as da la as las j8

890asfd f22

2 23rf a 23rfa

asdf9293 22 sdf

234 23r4 sdk

, . '  ds

sadf wow

sa s  sd

执行

./clearspace.sh source.txt

OK,DONE!

执行之后查看结果:cat source.txt

sfdasasdalaaslasj8

890asfdf22

223rfa23rfa

asdf929322sdf

23423r4sdk

,.'ds

sadfwow

sassd


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8017467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存