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

从VOB文件名提取季集信息生成正确NFO文件的Bash脚本问题

修正Bash脚本中Season和Episode字段提取逻辑

针对你的VOB文件名格式,要正确提取season(01)和episode(01),需要直接匹配文件名中的SxxExx模式,而非依赖分隔符分割字段。以下是修正后的代码段:

核心提取逻辑

假设脚本中已定义文件名变量filename,替换原season/episode提取代码为:

# 用Bash内置正则匹配SxxExx格式的字段
if [[ "$filename" =~ S([0-9]{2})E([0-9]{2}) ]]; then
    season="${BASH_REMATCH[1]}"  # 提取S后面的两位数字
    episode="${BASH_REMATCH[2]}" # 提取E后面的两位数字
fi

逻辑说明

  • 正则表达式S([0-9]{2})E([0-9]{2})精准匹配文件名中的S01E01部分,括号()用于捕获分组:
    • 第一个分组([0-9]{2})捕获Season的两位数字(如01)
    • 第二个分组([0-9]{2})捕获Episode的两位数字(如01)
  • BASH_REMATCH是Bash内置数组,存储正则匹配结果,索引1对应第一个捕获分组,索引2对应第二个捕获分组。

替换示例

如果原错误代码是按分隔符分割的写法(示例):

# 原错误代码
season=$(echo "$filename" | awk -F ' - ' '{print $2}')
episode=$(echo "$filename" | awk -F ' - ' '{print $3}' | cut -d' ' -f1)

直接替换为上述正则匹配代码即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:32:46