嗨,我有一份文件清单。 0.png,1.png ... 60.png,61.png,我想将所有文件重命名为10.png,11.png ... 70.png,71.png,但是我不知道如何可以做到。
答案 0 :(得分:1)
在bash中,您可以使用参数扩展来处理重命名,例如
for name in *.png; do
val="${name%.png}"
val=$((val+10))
mv "$name" "$val.png"
done
说明
val
是通过参数扩展"${name%.png}"
创建的,该扩展仅从文件名的右侧修剪".png"
。val=$((val+10))
将10
添加到数字中。mv "$name" "$val.png"
将文件从其原始名称移到新名称,其值增加10
。如果您要消除中间的val
变量,则可以在单个表达式中完成所有操作,例如
for name in *.png; do
mv "$name" "$((${name%.png} + 10)).png"
done
仔细检查一下,如果还有其他问题,请告诉我。
答案 1 :(得分:0)
假设文件名的格式为number.ext,则此功能可以解决问题。
#!/bin/bash
function rename_file() {
local file=$1
local fname=$(($(echo $file | cut -d. -f1) + 10))
local ext=$(echo $file | cut -d. -f2)
mv $file $fname.$ext
}
要重命名文件,请在Shell脚本中调用named_file file_name。