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

PHP如何替换无固定规则文件名中的第二个下划线为指定字符

批量替换文件名第二个下划线为x的解决方案

以下是不同场景下可直接运行的实操方案,所有方案均支持上千文件批量处理,且只会替换第二个_字符:

1. 跨平台通用方案(Python,适配Windows/macOS/Linux)

不需要额外安装工具,跨系统兼容性最好:

import os

# 替换为你存放目标文件的文件夹路径
folder_path = r"C:\你的文件路径"

for filename in os.listdir(folder_path):
    # 跳过文件夹,只处理文件
    file_fullpath = os.path.join(folder_path, filename)
    if not os.path.isfile(file_fullpath):
        continue
    # 按下划线最多拆分2次,精准定位第二个下划线位置
    parts = filename.split('_', 2)
    if len(parts) < 3:
        # 下划线不足2个的文件跳过不处理
        continue
    # 拼接生成新文件名
    new_filename = f"{parts[0]}_{parts[1]}x{parts[2]}"
    # 重命名操作
    os.rename(
        file_fullpath,
        os.path.join(folder_path, new_filename)

操作提示:运行前建议先备份文件,也可以先把os.rename代码块替换为print(filename, "→", new_filename)预览修改结果,确认无误后再执行重命名逻辑。


2. Windows系统 PowerShell 方案

直接用系统自带功能,无需额外配置:

# 切换到目标文件所在文件夹
cd "C:\你的文件路径"
Get-ChildItem -File | ForEach-Object {
    $parts = $_.Name -split '_', 3
    if ($parts.Count -ge 3) {
        $newName = "$($parts[0])_$($parts[1])x$($parts[2])"
        Rename-Item -Path $_.FullName -NewName $newName
    }
}

3. macOS/Linux 终端方案

一行命令即可完成操作:

# 先cd进入目标文件所在文件夹,再运行以下命令
for file in *; do if [[ -f "$file" ]]; then newfile=$(echo "$file" | sed 's/_/x/2'); mv "$file" "$newfile"; fi; done

预览修改结果的版本(不执行重命名):

for file in *; do if [[ -f "$file" ]]; then newfile=$(echo "$file" | sed 's/_/x/2'); echo "$file → $newfile"; fi; done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:45:05