linux find 命令中 如何使用正则表达式

原来对于比较复杂的按文件名查找都是find | grep


最近发现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"


阅读更多
文章标签: 正则表达式 find
个人分类: linux
上一篇有限状态机(FSM)的设计与实现(二)
下一篇Mysql函数总结(1)——字符串函数
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭