假设我有一个目录,其中包含很多子目录:

04762b39018e3cf4b1a2c6a304919b75
06e0caf156de30dd962cf6b9300aba66
1f1d0cb1b810336299cda5426d0f12f5
2fe7a428eb303da6846800fa20ab7ed4
41e0136413703b0685d6799f8a22a8e6
asdf
1234
Databases

其中一些目录的长度正好是32个字符(实际上是md5hash),我想找到它们.在这种情况下,不需要递归搜索.我try 使用以下命令:

find /root/my/subdir -maxdepth 1 -type d -regex '^.*[a-fA-F0-9]{32}$'

我会得到这样的结果:

04762b39018e3cf4b1a2c6a304919b75
06e0caf156de30dd962cf6b9300aba66
1f1d0cb1b810336299cda5426d0f12f5
2fe7a428eb303da6846800fa20ab7ed4
41e0136413703b0685d6799f8a22a8e6

但我什么都没拿到.在我的例子中,我更喜欢使用find,因为这样以后传递bash命令就很容易了,但是任何与bash兼容的一行程序都很好.

推荐答案

根据您的find版本,您可能只需要启用egrep:

$ find /root/my/subdir -maxdepth 1 -type d -regextype egrep -regex '^.*[a-fA-F0-9]{32}$'

Linux相关问答推荐

有没有方法在Linux中连接两个程序输出/输入?

抛出主,即未捕获到SIGSEGV中的异常结果

Flutter 构建错误:';DART:JS_interop';在此平台上不可用

使用ms宏将PIC图像放置在页面的任意位置

运行系统命令失败,但相同的命令可以直接在 bash 中执行

使用正则表达式捕获特定字符串

用于替换 struct 文档中文本的 Bash 脚本

在 bash 中解析变量

如何使用 sed debug调试正则表达式?

并行制作:将 -j8 设置为默认选项

如何增加 /proc/pid/cmdline 4096 字节限制?

在使用文件时截断文件 (Linux)

加密/解密在两个不同的 openssl 版本之间不能很好地工作

如何使用文件描述符刷新写入?

如何从 Linux 中的用户空间访问物理地址?

如何将路径名中的..转换为 bash 脚本中的绝对名称?

rename() 是原子的吗?

如何让我的 Golang Web 服务器在后台运行?

Linux shell 中的排序和唯一性

未找到版本CXXABI_1.3.8(...要求)