[英]Multiple files rename using linux shell script
我有以下图像。
10.jpg
11.jpg
12.jpg
我想删除以上图像。 我使用了以下shell脚本文件。
for file in /home/scrapping/imgs/*
do
COUNT=$(expr $COUNT + 1)
STRING="/home/scrapping/imgs/""Img_"$COUNT".jpg"
echo $STRING
mv "$file" "$STRING"
done
因此,替换文件名
Img_1.jpg
Img_2.jpg
Img_3.jpg
但是,我想这样替换文件名:
Img_10.jpg
Img_11.jpg
Img_12.jpg
那么,如何将COUNT
值设置为10以获得我自己的输出?
expr
语法已经过时,POSIX shell允许您使用$(())
语法进行算术评估。 你可以做
#!/usr/bin/env bash
count=10
for file in /home/scrapping/imgs/*; do
[ -f "$file" ] || continue
mv "$file" "/home/scrapping/imgs/Img_$((count++)).jpg"
done
同样,由于注释中报告的错误,您似乎正在通过dash
外壳运行它。 它似乎不具有符合标准POSIX shell的所有功能。 使用sh
或bash
shell运行它。
并始终在Shell脚本中为用户定义的变量使用小写字母。 大写字母主要用于由Shell本身管理的环境变量。
使用重命名命令,您可以在文件后缀Img_ :
rename 's/^/Img_/' *
^表示将文件名的开头替换为Img_ ,即:添加后缀。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.