find精确匹配
- find -name “*.txt” 支持匹配".txt"结尾的文件。
痛点
: 不支持精确匹配
-
find
-regex
参数支持标准正则匹配式
匹配且是完整路径匹配
。
我理解就是针对于一行参数匹配。
例如:
目前game目录下有如下目录。
需要按日期匹配目录,只输出类似“2021-08-12”的目录。
需要添加
-regextype
指定正则匹配的类型,才可以使用类似{2}
变量出现次数的写法。
man find
也可以查到该说明
单单只使用
-regex
是不支持{2}
这样的写法的。
展示:
命令:find /data/home/user00/logs/game -type d -a -regextype posix-extended -regex ".*/[0-9]{4}-[0-9]{2}-[0-9]{2}"
注意:
- 由于
-regex
是完整路径匹配,所以.*/
必须要加.- 原生
-regex
匹配时使用的是标准正则匹配,需要通过-regextype
指定为posix-extended
匹配方式。可以使用{2}
这样写法。(不支持\d
写法,但是支持\w
,匹配单个数字[0-9]
了)
-regextype
后可填类型
可填参数 | 意义 |
---|---|
emacs | (this is the default)默认 |
posix-awk | 待查 |
posix-basic | 待查 |
posix-egrep | 待查 |
posix-extended | 待查 |