使用正则表达式查找命令

使用正则表达式查找命令

我想找的文件。

20200521-285353-rpi3-4497-00-0-13-0-0-0-0-n.jpg
Files with Date in the filename from 2020-01-01 to 2020-09-31

不是

20201021-*.*

我的正则表达式字符串:

^20200[0-9][0-3][0-9]-[0-2].*

查找版本:find (GNU findutils) 4.7.0-git

我找不到有效的组合。我的尝试:

find . -type f -regextype grep -regex '20200[1-9]-*.*'
find . -type f -regex '^20200[0-9][0-9][0-9]\-[0-2].*'
find . -type f -regextype sed -regex '^20200[0-9][0-9][0-9]\-[0-2].*'

答案1

使用 glob 并保持简单

find -type f -name '20200521-*'

答案2

如果您只想查找  20200521-285353-rpi3-4497-00-0-13-0-0-0-0-n.jpg,请使用

find . -type f -name 20200521-285353-rpi3-4497-00-0-13-0-0-0-0-n.jpg

如果你想查找名称类似于

年月日-
其次是
         0,1或者2
其次是
                  (某物)
在哪里YYYY2020, 使用

find . -type f -name '2020[01][0-9][0-3][0-9]-[0-2]*'

但请注意,它会匹配误报,例如0231(2 月 31 日)、0400(4 月 0 日)、1038(10 月 38 日)和 1701(第 17 个月的第一天)。如果您想要查找名称与上述类似的文件,但仅限 1 月 ( 01) 到 9 月 ( 09),不包括 10 月、11 月和 12 月 ( 101112),请使用

find . -type f -name '20200[0-9][0-3][0-9]-[0-2]*'

请注意,以上内容均以*不是.*

请编辑您的问题以澄清您想要查找的内容。

顺便问一下,什么是285353?这不是一个有效的HHMMSS

相关内容