You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用find命令搭配sed正则筛选不含IMDB ID的文件未达预期

原命令错误分析
  • 正则失效原因:
    1. find的-regex参数是完全匹配完整文件路径,而非仅匹配文件名片段,原正则"tt\d{7}"未加前后通配符,无法匹配./xxx tt1234567.mp4这类带前后缀的路径,导致-not排除条件完全不生效。
    2. 原命令用-regextype sed(POSIX基础正则),不支持\d数字简写,且{7}数量限定符需要转义为\{7\},正则无法命中IMDB ID格式。
  • 带./前缀原因:find默认输出相对当前目录的完整路径,当前目录以.标识,因此输出自动附带该前缀。
可直接运行的命令

推荐写法(用扩展正则语法更简洁)

find . -type f -regextype posix-extended -not -regex ".*tt[0-9]{7}.*" -printf "%f\n"

兼容原sed正则类型的写法

如果不想修改正则类型,可将数量限定符转义后使用:

find . -type f -regextype sed -not -regex ".*tt[0-9]\{7\}.*" -printf "%f\n"
参数说明
  • -type f:仅筛选普通文件,排除目录等非文件类型
  • -regextype posix-extended:启用POSIX扩展正则,无需转义数量限定符
  • -not -regex ".*tt[0-9]{7}.*":匹配路径任意位置含tt+7位数字格式的文件,取反后即为不含IMDB ID的文件
  • -printf "%f\n":自定义输出格式,仅提取文件名部分,剔除./前缀,每条结果换行输出

备注:如果需要按文件名排序输出,可在命令末尾追加| sort即可。


内容的提问来源于stack exchange,提问作者Sachin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 16:24:03