首页 > 系统教程 > LINUX > 正文

用一个实例讲解rename命令中正则表达式的使用

王林
发布: 2024-04-07 08:04:01
转载
974人浏览过

用一个实例讲解rename命令中正则表达式的使用

rename命令用字符串替换的方式批量改变文件名。今天以一个例子来具体写一下自己遇到的问题并且解决的例子。希望对大家有帮助。

格式如下:

rename 原字符串  目标字符串  文件(列表)
  1. 原字符串:将文件名需要替换的字符串;
  2. 目标字符串:将文件名中含有的原字符替换成目标字符串;
  3. 文件:指定要改变文件名的文件列表。
举例:
将main1.c重命名为main.c
rename  main1.c  main.c  main1.c
登录后复制
rename支持通配符
?  可替代单个字符
*  可替代多个字符
[charset]  可替代charset集中的任意单个字符
登录后复制

举例:

文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278

rename foo foo0 foo?
登录后复制

该命令会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。

rename支持正则表达式

现在以一个具体的例子讲解该命令中正则表达式的使用:

今天下午我手中的数据(图片)命名是(1).jpg、(2).jpg......到(16720).jpg。

现在我想要把文件名改为00001.png、00002.png、.......16720.png

第一步:将后缀名.jpg改成.png

rename 's/\.jpg$/\.png/' *.jpg
登录后复制

第二步:讲左括号"("去掉:

rename 's/^\(//' *.png
登录后复制

第三步,将右括号“)”去掉:

rename 's/\)//' *.png
登录后复制

第四步:将文件名字改成五位数,不足五位数的前面补0即可。创建脚本a.sh完成,脚本内容如下:

#!/bin/bash
for i in {1..9}
do 
   mv $i.png  0000$i.png
done
for i in {10..99}
do 
   mv $i.png  000$i.png
done
for i in {100..999}
do 
   mv $i.png  00$i.png
done
for i in {1000..9999}
do 
   mv $i.png  0$i.png
done
登录后复制

然后将该脚本文件和需要更改文件名的文件夹下,我们直接执行该脚本即可。

如果此时看到“权限不够”那就加上执行权限即可。

chmod  755 a.sh
登录后复制

至此,我们已经完成了任务,如果有不理解的地方,请给我留言。如果转载,请标明出处:http://www.cnblogs.com/wongyi/

以上就是用一个实例讲解rename命令中正则表达式的使用的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:Linux就该这么学网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号