注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

find 使用正则  

2012-11-26 10:15:30|  分类: shell脚本 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如何查找一个目录下的jpg图片文件,并将七天以前的文件删除?

第一种做法:
find /path -name "*.jpg"  -type f  -mtime +7 -exec rm -f {} \;
find /path -name "*.JPG" -type f -mtime +7 -exec rm -f {} \;
。。。。

第二种做法:
find /path \( -name "*.jpg" -o -name "*.JPG" -o -name "*.jpeg" \) -type f -mtime +7 -exec rm -f {} \;

第三种做法:
find /path \( -iname "*.jpg" -o -iname "*.jpeg"\) -type f -mtime +7 -exec rm -f {} \;

第四种做法:
find /path -iregex ".*\.\(jpg\|jpeg\)$"  -mtime +7 -type f -exec rm -f {} \;

注意上面的那个红色的 ".",find本身就是支持正则表达式的 
find path -regex "xxx"
find path -iregex "xxx"
这两条命令都是运用base-regexp对文件路径进行匹配,iregex忽略大小写。
但是给出的正则表达式必须要匹配完整的文件路径
比如:find / -regex "find" 这样子是找不到/usr/bin/find的,要像这样find / -regex ".*find"或者更精确一点find / -regex ".*/find"
如果要使用扩展的正则表达式,对于BSD系的find可以在路径名前加一个"-E"选项
GNU的find支持多种风格的正则表达式,用-regextype 指定所使用的正则表达式类型,可选的有emacs(默认),posix-awk,posix-basic,posix-egrep,posix-extended,喜欢了grep -E,所以我就用posix-egrep了

find / -regextype "posix-egrep" -regex ".*/find"



  评论这张
 
阅读(218)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017