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

如何在Bash中捕获正则匹配数字并批量修改文件名_XtoX数值

解决方案

可以用Bash的正则表达式匹配精准捕获文件名里的两个数字,计算递增后的值再拼接成新文件名,具体脚本如下:

for FILE in err*; do
    # 正则匹配捕获_XtoX部分的两个数字
    if [[ $FILE =~ ^(.*_)([0-9]+)to([0-9]+)$ ]]; then
        prefix="${BASH_REMATCH[1]}"
        num1="${BASH_REMATCH[2]}"
        num2="${BASH_REMATCH[3]}"
        # 计算数字加20后的值
        new_num1=$((num1 + 20))
        new_num2=$((num2 + 20))
        # 生成新文件名并重命名
        new_FILE="${prefix}${new_num1}to${new_num2}"
        mv "$FILE" "$new_FILE"
    fi
done

关键说明

  • 正则^(.*_)([0-9]+)to([0-9]+)$把文件名拆成三部分:
    • BASH_REMATCH[1]:最后一个下划线前的全部内容(比如err_5JUP_N2_UUCCGU_)
    • BASH_REMATCH[2]:to左侧的数字(比如1)
    • BASH_REMATCH[3]:to右侧的数字(比如2)
  • 用$((...))完成整数加法运算,得到递增后的新数字
  • 若怕误操作,可先把mv换成echo,预览生成的新文件名是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:42:04