知方号

知方号

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"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。