find中使用正则表达式


find中使用正则表达式的语法是 find dir -regextype "type" -regex "pattern"


其中

dir:查找文件的起始目录

type: 如果不使用选项 -regextype "type", 则认的正则表达式类型是emacs(我没用过)。使用该选项的话,type 类型包括 posix-awk,posix-basic,posix-egrep 和 posix-extended 四种。我常用的是后两种。记得PHP也是常用后两种。

pattern: find 中要想使用正规正则表达式,需要用选项 -regex "pattern". (这和常用的grep似乎不一样)。 而pattern就用相应类型风格的正则表达式替换即可。注意 find 的常用选项 -name 是不支持正则表达式的,充其量只能说 -name 选项支持通配符 * ? [] 。


find 正则表达式匹配的是什么

这是经常出问题的地方。至少我该刚接触find 的时候就屡犯这个错误。注意:find 正则表达式是匹配全路径(包含文件名和相对路径),它不是搜索。也就是说所写的正则必须能够匹配整个搜索目录路径文件名的组合,而不是单单匹配文件名本身。比如说:查找当前目录下的 fubar3 文件。 它的全路径(相对路径)是 ./fubar3 , 注意前面有 ./ 而不只是文件名。所以正则可以写成 `.*bar.' 或者 `.*b.*3' 等等,但是不能写成 `f.*r3' (这里就不能匹配前面的目录部分)

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...