编写一个简单的脚本,它将自动重命名许多文件。例如,我们希望将文件*001.jpg重命名为用户定义的字符串+ 001.jpg (例如: MyVacation20110725_001.jpg)此脚本的用法是让数码相机照片具有一些有意义的文件名。
我需要为此编写一个shell脚本。有人能建议一下如何开始吗?
发布于 2011-07-27 14:45:47
下面是一个帮助你起步的例子。
for f in *.jpg; do mv "$f" "$(echo "$f" | sed s/IMG/VACATION/)"; done
在本例中,我假设您的所有图像文件都包含字符串IMG
,并且您希望用VACATION
替换IMG
。
外壳程序会自动对所有匹配的文件执行*.jpg
。
mv
(文件的新名称)的第二个参数是sed
命令的输出,该命令将IMG
替换为VACATION
。
如果您的文件名包含空格,请仔细注意"$f"
表示法。您需要使用双引号来保留空格。
发布于 2013-07-29 20:05:42
您可以使用 rename 实用程序按模式重命名多个文件。例如,下面的命令将字符串MyVacation2011_添加到所有扩展名为jpg的文件前面。
rename 's/^/MyVacation2011_/g' *.jpg
或
rename <pattern> <replacement> <file-list>
发布于 2017-07-07 15:59:36
在这个例子中,我假设你所有的图像文件都以"IMG“开头,而你想把"IMG”替换成“”。
解决方案:首先识别所有jpg文件,然后替换关键字
find . -name '*jpg' -exec bash -c 'echo mv $0 ${0/IMG/VACATION}' {} \;
https://stackoverflow.com/questions/6840332
复制相似问题