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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)