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

编写Shell脚本实现文件名编号的互补序列替换需求

解决文件LIFO重命名的方案

核心转换逻辑

原文件编号为N,总文件数为M(此处为162),新编号计算公式:新编号 = M + 1 - N。比如原编号1对应新编号162,原编号162对应新编号1,完美反转顺序。


方法1:Windows PowerShell

  1. 打开PowerShell,切换到目标文件所在目录
  2. 执行以下脚本(将162替换为你的实际总文件数):
$total = 162
Get-ChildItem -File | ForEach-Object {
    if ($_.Name -match '(\w+)_(\d+)_(\w+)\.(\w+)') {
        $prefix = $matches[1]
        $oldNum = [int]$matches[2]
        $middle = $matches[3]
        $ext = $matches[4]
        $newNum = $total + 1 - $oldNum
        $newName = "$prefix`_$newNum`_$middle.$ext"
        # 先取消下面注释测试输出,确认无误后再启用重命名
        # Write-Output $newName
        Rename-Item -Path $_.FullName -NewName $newName
    }
}

方法2:Linux/macOS Bash脚本

  1. 在文件目录下创建rename.sh脚本:
#!/bin/bash
total=162

for file in *.ext; do  # 替换为你的实际扩展名,或用*匹配所有文件
    if [[ $file =~ ^([a-zA-Z0-9]+)_([0-9]+)_([a-zA-Z0-9]+)\.([a-zA-Z0-9]+)$ ]]; then
        prefix=${BASH_REMATCH[1]}
        old_num=${BASH_REMATCH[2]}
        middle=${BASH_REMATCH[3]}
        ext=${BASH_REMATCH[4]}
        new_num=$((total + 1 - old_num))
        new_name="${prefix}_${new_num}_${middle}.${ext}"
        # 先取消下面注释测试输出,确认无误后再启用重命名
        # echo "$file -> $new_name"
        mv "$file" "$new_name"
    fi
done
  1. 赋予执行权限:chmod +x rename.sh
  2. 执行脚本:./rename.sh

方法3:Python脚本(跨平台)

  1. 创建rename_files.py:
import os
import re

total_files = 162
# 匹配文件名格式的正则,可根据实际调整
pattern = re.compile(r'^(\w+)_(\d+)_(\w+)\.(\w+)$')

for filename in os.listdir('.'):
    if os.path.isfile(filename):
        match = pattern.match(filename)
        if match:
            prefix, old_num_str, middle, ext = match.groups()
            old_num = int(old_num_str)
            new_num = total_files + 1 - old_num
            new_filename = f"{prefix}_{new_num}_{middle}.{ext}"
            # 先取消下面注释测试输出,确认无误后再启用重命名
            # print(f"{filename} -> {new_filename}")
            os.rename(filename, new_filename)
  1. 运行脚本:python rename_files.py

关键注意事项

  • 操作前务必备份文件,避免重命名失误导致数据丢失
  • 确认总文件数参数和实际数量完全一致
  • 如果文件名格式和示例有差异,调整正则表达式的匹配规则即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:43:34