如何修改Bash循环脚本以调整文件名的数字前缀格式
如何修改Bash循环脚本以调整文件名的数字前缀格式
嘿,我来帮你搞定这个文件名格式的问题!你现在的脚本不管数字大小都固定加了个0,导致10及以上的数字也变成了ext010.txt、ext030.txt这种,咱们只需要加个简单的判断逻辑,让数字小于10的时候保留前导0,10及以上的自动去掉这个多余的0就行。
直接给你修改好的脚本:
prod_parts=30 for i in $(seq 2 $prod_parts); do prev=$((i - 1)) next=$((i + 1)) # 根据数字大小生成对应格式的文件名 if [ $i -lt 10 ]; then filename="ext0$i.txt" else filename="ext$i.txt" fi printf "something" > "$filename" done
简单拆解下逻辑:
- 循环里新增了
if-else判断:当i小于10时,文件名用ext0$i.txt(比如i=5时生成ext05.txt); - 当
i大于等于10时,直接用ext$i.txt(比如i=10时生成ext10.txt,i=30时生成ext30.txt); - 最后把内容写入对应格式的文件名即可。
运行这个脚本后,生成的文件名就完全符合你想要的效果:小数字保留前导0,10及以上的数字自动去掉多余的0。
备注:内容来源于stack exchange,提问作者James Starlight
相关产品推荐
相关产品推荐

