免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6198 | 回复: 4
打印 上一主题 下一主题

如何通过正则表达式删除文件名是连续数字的文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-04 21:09 |只看该作者 |倒序浏览
向大家请教一个正则表达式的问题

我现在想清一下去年上半年的log,但觉得一个一个地删有点烦了,以前记得在哪见过用正则表达式能解决这个问题,但试了几次都不行。大家给些思路吧。谢谢喽

例如:现在有如下文件
01.log
02.log
03.log
04.log
05.log
06.log
07.log
08.log
09.log
10.log
11.log
12.log

我想删除前半年的log以腾点空间,以前好像见过类似
rm -rf 0[1-6].log 这样的方法,但我试过了不行。

论坛徽章:
0
2 [报告]
发表于 2009-03-04 21:18 |只看该作者

回复 #1 daming31 的帖子

find ./ -name "[0-9]*\.log" -exec rm {} \;

论坛徽章:
0
3 [报告]
发表于 2009-03-04 21:29 |只看该作者
原帖由 daming31 于 2009-3-4 21:09 发表
向大家请教一个正则表达式的问题

我现在想清一下去年上半年的log,但觉得一个一个地删有点烦了,以前记得在哪见过用正则表达式能解决这个问题,但试了几次都不行。大家给些思路吧。谢谢喽

例如:现在有如 ...

rm -rf 0[1-6].log
在我的bash下可以哟
GNU bash, version 3.1.17(1)-release

论坛徽章:
0
4 [报告]
发表于 2009-03-04 21:35 |只看该作者

回复 #1 daming31 的帖子

说说你的环境吧
一般这样是可以的
rm -f 0[1-6].log

论坛徽章:
0
5 [报告]
发表于 2009-03-04 22:00 |只看该作者
我一般是

ls -l|awk '{print "rm "$NF}'>rm.sh
然后从rm.sh里找到要截至的那一行,把那一行之后的全部删掉
chmod u+x rm.sh
./rm.sh
rm rm.sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP