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

简介:

题目

[root@show day74]# touch {00..10}.html
[root@show 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 命令

[root@show day74]# rename .html .jpg *.html
[root@show 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命令拼接

[root@show 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命令拼接

[root@show 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
[root@show day74]# ls *.html |sed -r 's#(^[0-9]*).*#mv \1.html \1.jpg#e'

awk命令拼接

[root@show 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
[root@show day74]# ls *.html|awk -F. '{print "mv",$1".html",$1".jpg"}'|bash
[root@show 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编程

[root@show 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
[root@show day74]# for name in `ls *.html`;do mv $name ${name%.html}.jpg;done
[root@show day74]# ls 
00.jpg  01.jpg  02.jpg  03.jpg  04.jpg  05.jpg  06.jpg  07.jpg  08.jpg  09.jpg  10.jpg

网友回答:

1
2
3
[root@show day74] # for n in {00..10};do mv $n.html $n.jpg ;done 
[root@show 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


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1940039

相关文章
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
36 1
|
弹性计算 Linux C语言
冬季实战营第二期学习报告4:Linux指令入门-文件与权限
本教程介绍Linux系统中常用的文件目录管理和文件权限管理命令。
杨老师课堂_VBA学习教程之一键合并所有文件
文件合并示例代码:   要求:在C盘中有一个文件夹,文件夹中有文件存在 Sub wjhb() Dim str As String Dim wb As Workbook str = Dir("c:\data\*.
1176 0