老男孩教育每日一题-第74天-批量重命名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩教育每日一题-第74天-批量重命名相关的知识,希望对你有一定的参考价值。

题目

[[email protected] day74]# touch {00..10}.html
[[email protected] day74]# ls
00.html  01.html  02.html  03.html  04.html  05.html  06.html  07.html  08.html  09.html  10.html

我想把这些文件批量重命名为 00.jpg …..10.jpg,请问如何操作

参考答案:

方法一:rename 命令

[[email protected] day74]# rename .html .jpg *.html
[[email protected] day74]# ls
00.jpg  01.jpg  02.jpg  03.jpg  04.jpg  05.jpg  06.jpg  07.jpg  08.jpg  09.jpg  10.jpg

方法二:sed或awk命令拼接

[[email protected] day74]# ls
00.html  01.html  02.html  03.html  04.html  05.html  06.html  07.html  08.html  09.html  10.html

sed命令拼接

[[email protected] day74]# ls *.html |sed -r ‘s#(^[0-9]*).*#mv \1.html \1.jpg#‘mv 00.html 00.jpg
mv 01.html 01.jpg
mv 02.html 02.jpg
mv 03.html 03.jpg
mv 04.html 04.jpg
mv 05.html 05.jpg
mv 06.html 06.jpg
mv 07.html 07.jpg
mv 08.html 08.jpg
mv 09.html 09.jpg
mv 10.html 10.jpg
[[email protected] day74]# ls *.html |sed -r ‘s#(^[0-9]*).*#mv \1.html \1.jpg#e‘

awk命令拼接

[[email protected] day74]# ls *.html|awk -F. ‘{print "mv",$1".html",$1".jpg"}‘mv 00.html 00.jpg
mv 01.html 01.jpg
mv 02.html 02.jpg
mv 03.html 03.jpg
mv 04.html 04.jpg
mv 05.html 05.jpg
mv 06.html 06.jpg
mv 07.html 07.jpg
mv 08.html 08.jpg
mv 09.html 09.jpg
mv 10.html 10.jpg
[[email protected] day74]# ls *.html|awk -F. ‘{print "mv",$1".html",$1".jpg"}‘|bash
[[email protected] day74]# ls
00.jpg  01.jpg  02.jpg  03.jpg  04.jpg  05.jpg  06.jpg  07.jpg  08.jpg  09.jpg  10.jpg

方法三:shell编程

[[email protected] day74]# for name in `ls *.html`;do echo $name ${name%.html}.jpg;done
00.html 00.jpg
01.html 01.jpg
02.html 02.jpg
03.html 03.jpg
04.html 04.jpg
05.html 05.jpg
06.html 06.jpg
07.html 07.jpg
08.html 08.jpg
09.html 09.jpg
10.html 10.jpg
[[email protected] day74]# for name in `ls *.html`;do mv $name ${name%.html}.jpg;done
[[email protected] day74]# ls 
00.jpg  01.jpg  02.jpg  03.jpg  04.jpg  05.jpg  06.jpg  07.jpg  08.jpg  09.jpg  10.jpg

网友回答:

[[email protected] day74]# for n in {00..10};do mv $n.html $n.jpg ;done 
[[email protected] day74]# ls
00.jpg  01.jpg  02.jpg  03.jpg  04.jpg  05.jpg  06.jpg  07.jpg  08.jpg  09.jpg  10.jpg

备注

今天是每日一题陪伴大家的第74天,期待你的进步。
对于题目和答案的任何疑问,请在博客评论区留言。
往期题目索引
http://lidao.blog.51cto.com/3388056/1914205

本文出自 “李导的博客” 博客,请务必保留此出处http://lidao.blog.51cto.com/3388056/1940039

以上是关于老男孩教育每日一题-第74天-批量重命名的主要内容,如果未能解决你的问题,请参考以下文章

老男孩教育每日一题-第63天-批量创建用户并设置随机密码(要求不能使用shell循环语句)

老男孩教育每日一题-第110天-find命令-size参数

老男孩教育每日一题-第126天-通过shell脚本打印乘法口诀表

老男孩教育每日一题-第58天-请描述下面列出的 http 状态码的含义

老男孩教育每日一题-第70天-shell脚本优化点:

​老男孩教育每日一题-第64天 -sed命令闯关