会产生相同前缀排序的文件。
我想再ubuntu下实现这个效果。
于是搜索了一番,没搜到令我满意的。
请教了一下群里的朋友。他给我写了几句,确实可以达到以上目的:
代码: 全选
let i=0;for it in *.png;{ mv "$it" "photo${i}.png"; let i=i+1; }
这个脚本是一个主干,我研究了一下脚本的基础知识之后,经过多次修改测试,终于被我写出了满意的脚本。
代码: 全选
#!/bin/bash
#用法:在终端使用"./renames.sh"运行
echo "===本脚本实现批量重命名某种类型文件为相同前缀+数字的文件===";
echo "!警告:一定要确保输入的前缀加上数字后,不和原先已有的文件名重复,否则文件会因为替换而丢失";
echo --------------------------------------------------------------------
echo "?---输入批量文件所在目录(如:/home/andy/图片)(当前目录输入 .即可)---";
read directory;
cd "$directory";
echo "?---输入要重命名文件类型和前缀(如:png img_ (区分大小写))[以空格分割]---";
read ext begin;
echo ">>>开始批量重命名 $directory 下的 $ext 文件>>>>>>>>>>>>>>";
let i=0;
for it in *.$ext; do
mv "$it" "$begin$i.$ext";
let i=i+1;
done
echo "===完成$i个文件批量重命名,文件列表如下:";
ls *.$ext
echo -----------------------------------------------------------------------
把以上代码保存为renames.sh
放在任意目录,终端运行 ./renames.sh
输入提示1:输入要批量重命名的文件路径。(文件和脚本同目录或在子目录可省略些,如”.“、“./photo”)
输入提示2:文件类型、重命名前缀(不输入前缀则文件重命名为数字0、1、2、3……)
(你输入前缀abc,那么批量重命名后的文件就是abc0、abc1、abc2、abc3……。假如事先已存在abc1,你还要用abc做前缀,这个文件就可能被替换。所以你一定要用abc的话建议你先用xyz,然后再运行一次这个脚本。)
发现我写得太罗嗦了。
这是我的第一个shell脚本,大家支持一下啊。
也许高手有更简短的语句可以实现。但我对那些/^!#@$%*\还不是很理解,所以献丑了。
如有更好办法,不妨贴出来大家分享。
希望大家一起来改进这个脚本。最好哪位高手做个简单的GUI窗口,这样更方便。