Linux环境下使用bash批量给文件名数字加500的重命名方法咨询
Bash批量给YUV文件编号加偏移量的正确命令
你之前的命令错误原因是未触发bash的算术运算逻辑,$i+500被识别为普通字符串直接拼接,因此生成了带+号的错误文件名。
方案1:原生Bash算术扩展(兼容性最佳,所有Bash环境通用)
命令如下:
for i in {0..499}; do mv "file_$i.yuv" "file_$((i+500)).yuv"; done
- 核心逻辑是用
$(( 表达式 ))语法触发算术运算,自动计算i+500的数值后再拼接到文件名中。 - 保险操作:执行前可先将
mv替换为echo,查看输出的重命名规则是否符合预期,确认无误后再换回mv执行:for i in {0..499}; do echo "file_$i.yuv -> file_$((i+500)).yuv"; done
方案2:Perl版rename工具(更简洁,适用已安装对应工具的环境)
如果系统自带Perl版本的rename(常见于Debian/Ubuntu系发行版),可直接用单行命令完成:
rename 's/file_(\d+)\.yuv/file_$1+500/e' file_*.yuv
- 末尾的
e修饰符表示将替换部分的表达式作为代码执行,自动完成编号加500的计算。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

