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

如何编写脚本批量将文本列表标签作为后缀重命名指定目录文件?

批量重命名脚本实现方案

需求说明

将/home/linux/test/目录下的.ext文件,按照labels.txt中的对应标签,重命名为[原文件名前缀] - [标签].[后缀]的格式。

实现脚本

#!/bin/bash

# 配置目标目录和标签文件路径
TARGET_DIR="/home/linux/test"
LABEL_FILE="./labels.txt"

# 读取目录下的.ext文件并排序,存入数组
mapfile -t FILES < <(ls -1 "${TARGET_DIR}"/*.ext | sort)
# 读取标签文件内容到数组
mapfile -t LABELS < "${LABEL_FILE}"

# 校验文件与标签数量是否匹配
if [ ${#FILES[@]} -ne ${#LABELS[@]} ]; then
    echo "错误:文件数量和标签数量不匹配,请检查"
    exit 1
fi

# 遍历执行重命名
for i in "${!FILES[@]}"; do
    # 获取当前文件和对应标签
    current_file="${FILES[$i]}"
    current_label="${LABELS[$i]}"
    
    # 提取文件名(不含路径)、前缀和后缀
    filename=$(basename "$current_file")
    name_prefix="${filename%.*}"
    name_suffix="${filename##*.}"
    
    # 构建新文件名并执行重命名
    new_filename="${name_prefix} - ${current_label}.${name_suffix}"
    mv "$current_file" "${TARGET_DIR}/${new_filename}"
    echo "完成重命名:$filename → $new_filename"
done

使用步骤

  1. 将上述代码保存为batch_rename.sh
  2. 赋予脚本执行权限:chmod +x batch_rename.sh
  3. 建议先测试:将脚本中的mv改为echo mv,运行后确认重命名预览结果无误
  4. 确认无误后,恢复mv命令并执行脚本:./batch_rename.sh

注意事项

  • 确保labels.txt中每行一个标签,无空行或多余内容,且标签数量与目标目录下的.ext文件数量一致
  • 若目标目录下的文件排序有特殊要求,可调整ls的排序参数(默认按文件名升序)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:10:27