查找包含姓名+1900-1990+姓名的文件夹

查找包含姓名+1900-1990+姓名的文件夹

我正在尝试搜索许多包含 ex 的文件夹。Events.1900-1990.events。我不想要文件夹前。使用 时Events.2004,只有文件夹包含 1900 -> 1990 的年份。

名字Event可以是任何东西,可以是生日、战争等。

我尝试过这样的事情:

find . -type d -regex '*/[a-z][A-Z]/19+\[0-9]*' -print

但没有发现任何东西

答案1

find . -type d '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')'

这将找到当前目录中或当前目录下名称包含 1900 到 1990 之间任何数字的任何目录。测试根据文件名分为两部分,第一个测试为 1900 到 1989 之间的数字,第二个测试为1990年。

在这种情况下不需要使用正则表达式。上面的模式是文件名通配模式。

如果您想添加对文件名后缀的测试.events,则可以通过两种方式执行此操作:

find . -type d -name '*.events' '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')' 

find . -type d '(' -name '*19[0-8][0-9]*.events' -o -name '*1990*.events' ')'

您的命令不会找到任何与*正则表达式开头的 a 匹配的字符*。您还可以对表达式中的其中之一进行转义[,使其与字符 匹配[

相关内容