班主任提供一份学生名单a
学生根据a名单排队站好,依次拍照。
照片从相机里面倒出来是根据相机里面的命名规则按顺序排列的(如:IMG_1314.JPG、IMG_1315.JPG......)。
要求将照片重命名为学生本人的名字,如张三.JPG、李四.JPG.......
怎样使用shell指令将a文件里面的名字按顺序赋给相片文件?
请高手给支个招,谢谢!
求助一个批量重命名的问题
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
求助一个批量重命名的问题
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
- lilydjwg
- 论坛版主
- 帖子: 4252
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求助一个批量重命名的问题
假定文件名里不含空格等特殊字符。
以上生成一个叫 cmds.sh 的脚本文件。检查没有问题之后,用 bash cmds.sh 执行它。
代码: 全选
ls *.JPG > b # 因为是相机导出的照片,这里顺序应该不会有问题
for name file in $(paste a b); do
echo mv $file $name.jpg
done > cmds.sh
-
- 帖子: 1
- 注册时间: 2012-05-04 13:27
Re: 求助一个批量重命名的问题
可以用WPS实现批量改文件名,教程如下:https://blog.csdn.net/weixin_29190573/a ... /112315273
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
Re: 求助一个批量重命名的问题
感谢帮忙,脚本运行提示错误:
./rename:行2: 未预期的符号“file”附近有语法错误
./rename:行2: `for name file in $(paste a b); do'
这里提示错误,麻烦看看应该怎么做?
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
- lilydjwg
- 论坛版主
- 帖子: 4252
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求助一个批量重命名的问题
啊,bash 的 for 不支持多个变量。那你用 zsh 跑吧……
- lilydjwg
- 论坛版主
- 帖子: 4252
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求助一个批量重命名的问题
其实我想说用 Vim 来着,但是楼主可能也不会用 Vim。
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23
Re: 求助一个批量重命名的问题
安装zsh后再执行,就搞定了,很简单,谢谢帮忙!
不过还是出错,需要稍微改一下才正常:
ls *.JPG > b
for name file in $(paste a b); do
mv $file $name.JPG
done
另WPS那个方案太过复杂,不过还是谢谢了~
不过还是出错,需要稍微改一下才正常:
ls *.JPG > b
for name file in $(paste a b); do
mv $file $name.JPG
done
另WPS那个方案太过复杂,不过还是谢谢了~
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
-
- 帖子: 103
- 注册时间: 2013-12-13 6:57
Re: 求助一个批量重命名的问题
ls 加上 -v 参数,才会按照自然数顺序排列。不加会这样排的哦: 1 10 11 ... 2 20 21 ...
- chinaz
- 帖子: 238
- 注册时间: 2007-02-07 9:23