regex - 查找排除包含数字破折号的目录

标签 regex linux find

我正在尝试编写一个查找命令,该命令排除数字破折号的目录,但允许其他目录。

示例目录

./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]+/*'

任何帮助都会很棒。谢谢!

最佳答案

您应该使用 .* 而不是 *
使用正则表达式时,* 表示“匹配前面的标记 0 次或多次”

这将产生以下命令:

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

更新:我还以为您忘记了在命令中转义 / ,但经过一些研究后,它似乎转义了 / > 使用 find 命令时不需要。

关于regex - 查找排除包含数字破折号的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44851748/

相关文章:

Java - 正则表达式 - 用星号替换地址

linux - 使用 sed 删除行直到文件末尾

Android AVD 不适用于硬件加速

eclipse - 在 Eclipse 中查找下一个无处不在的键盘快捷键?

macos - Mdfind 排除文件夹

php - htaccess 允许访问一个 PHP 文件

ruby - 用于从字符串解析标签的正则表达式.. Flickr 风格

Java 使用正则表达式来匹配测验的模式

java - 如何为您的 Java 应用程序创建 native 二进制文件?

bash - 使用 ffmpeg 的 bash 查找循环中的尴尬行为