我正在尝试查找名称中包含14位数字的所有文件(我正在尝试匹配文件名中的时间戳)。我不确定如何正确地使用GNU find regexp语法进行重复。
我尝试了find -regex ".*[0-9]{14}
和find -regex ".*[0-9]\{14\}
,但这些都没有结果。你能帮我解释一下语法吗?
答案 0 :(得分:3)
记住,GNU find's -regex
匹配整个路径。无论如何,你可以使用find
和grep
的组合来完成任务,例如找到没有其他字符的14个数字
find . -type f -printf "%f\n" | grep -E "\b[0-9]{14}\b"
根据您的需要进行修改
答案 1 :(得分:1)
尝试更改-regextype参数以查找。
更改-regex和-iregex理解的正则表达式语法 稍后在命令行上发生的测试。目前实现的 类型是emacs(这是默认值),posix-awk,posix-basic, posix-egrep和posix-extended。
答案 2 :(得分:0)
$ls
a123.txt a1b2c3.txt a45.txt b123.txt
$find -regex '.*[^0-9][0-9][0-9][^0-9].*'
./a45.txt