GNU中的重复查找正则表达式

时间:2011-08-30 14:56:54

标签: regex find

我正在尝试查找名称中包含14位数字的所有文件(我正在尝试匹配文件名中的时间戳)。我不确定如何正确地使用GNU find regexp语法进行重复。

我尝试了find -regex ".*[0-9]{14}find -regex ".*[0-9]\{14\},但这些都没有结果。你能帮我解释一下语法吗?

3 个答案:

答案 0 :(得分:3)

记住,GNU find's -regex匹配整个路径。无论如何,你可以使用findgrep的组合来完成任务,例如找到没有其他字符的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)

奇怪的是,我只是尝试了一下,我无法完成这项工作。无论如何,这是一个解决方法(匹配2个连续数字):

$ls
a123.txt  a1b2c3.txt  a45.txt  b123.txt
$find -regex '.*[^0-9][0-9][0-9][^0-9].*'
./a45.txt