Regex 查找排除编号为破折号的目录

Regex 查找排除编号为破折号的目录,regex,linux,find,Regex,Linux,Find,我正在尝试编写一个find命令,该命令将排除编号为破折号的目录,但允许其他目录 find . -type f ! -regex '\./[0-9]+\-[0-9]+/*' 样本目录 ./135888897-135954433/ ./135888897-135954434/ ./135888897-135954435/ ./BLAG-DEF-JOB1/ ./TOM-DEPLOYDEV-JOB1/ ./FRANK-RELEASE-JOB1/ ./STEVE-RELEASE-JOB1/ 这是我的f

我正在尝试编写一个find命令,该命令将排除编号为破折号的目录,但允许其他目录

find . -type f ! -regex '\./[0-9]+\-[0-9]+/*'
样本目录

./135888897-135954433/
./135888897-135954434/
./135888897-135954435/
./BLAG-DEF-JOB1/
./TOM-DEPLOYDEV-JOB1/
./FRANK-RELEASE-JOB1/
./STEVE-RELEASE-JOB1/
这是我的find命令的一部分。我似乎无法让它跳过数字目录

find . -type f ! -regex '\./[0-9]+\-[0-9]+/*'

任何帮助都会很好。谢谢

您应该使用
*
而不是
*

使用regex时,a
*
表示“匹配前面的标记0次或更多次”

这将产生以下命令:

find . -type f ! -regex '\./[0-9]+\-[0-9]+/.*'
更新:我还以为您忘了在命令中转义
/
,但在做了一点研究之后,在使用
查找
命令时,似乎不需要转义
/

您可以使用:

find . -type f ! -regex '\./[0-9]+-[0-9]+/.*'