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

如何根据文本文件中的两列内容重命名tgz文件

批量重命名文件的方法

假设映射文本文件名为map.txt,内容如下:

s-10 Tom
s-11 Harry 
s-12 Peter

以下是两种可行的重命名方案:

方案一:Bash循环逐行处理

直接通过while循环读取映射文件内容,执行重命名操作:

# 先测试命令是否正确(替换mv为echo)
while read -r old_prefix new_name; do
    echo mv "${old_prefix}.tgz" "${new_name}.tgz"
done < map.txt

# 确认命令无误后,去掉echo执行实际重命名
while read -r old_prefix new_name; do
    mv "${old_prefix}.tgz" "${new_name}.tgz"
done < map.txt

方案二:Awk生成命令并执行

用Awk批量生成重命名命令,再通过Shell执行:

# 测试命令(生成mv命令但不执行)
awk '{printf "mv \"%s.tgz\" \"%s.tgz\"\n", $1, $2}' map.txt

# 执行实际重命名
awk '{printf "mv \"%s.tgz\" \"%s.tgz\"\n", $1, $2}' map.txt | sh

注意事项

  • 执行重命名前建议先通过echo或仅生成命令的方式验证,避免误操作
  • 如果新文件名包含空格或特殊字符,上述方案已通过双引号处理,可正常适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:25:21