昨天有需要要用到 Linux 批量改文件名,网上查了下,大多都是用 shell 脚本来实现的。我看了看那几句 shell 脚本,那几个 % 和 $ 的符号实在是没搞懂,也不想花时间去研究,于是又搜了搜,然后就找到了 rename 这个命令。rename 可以批量修改文件名,还支持正则表达式。这样就简单多了嘛,正则表达式写起来还是简单的,而且看一下示例就会了。

直接输入 rename 回车即可看到帮助信息,如果提示没有安装,那么可以进行安装。

Ubuntu:apt-get install -y rename

CentOS 下的安装没研究,估计也是 yum 可以直接安装的。

1、rename 基本用法

rename [options] "s/oldname/newname/" file

抛开 options 部分不看,其实就是:

rename "s/oldname/newname/" file

其中:

原字符串 oldname:将要被替换的字符串;

目标字符串 newname:原字符替换成的目标字符串;

文件 file:指定要改变文件名的文件列表。

以上每个部分都可以使用正则表达式,执行命令之后,就把原来的 oldname 换成了 newname,非常方便。

2、options 选项介绍

-v 将重命名的内容都打印到标准输出,v 可以看成 verbose

-n 测试会重命名的内容,将结果都打印,但是并不真正执行重命名的过程

-f force 会覆盖本地已经存在的文件

-h -m -V 分别为帮助,帮助,版本

-e 比较复杂,可以通过该选项,写一些脚本来做一些复杂的事情

此外也可以使用通配符:

? 可替代单个字符

* 可替代多个字符

当命令中最后 file 为 * 时表示,匹配当前文件夹下所有文件,如果为 ? 时则匹配只有一个字符的文件名。

二、rename 支持正则表达式示例

1、替换文件名中特定字段

rename "s/AA/aa/" * # 把文件名中的AA替换成aa

这一行命令的解释就是,对当前文件夹下满足 * 的所有文件,文件名中包含 AA 字符的替换为 aa 其中 "s/pattern/new/" 中的 / 一个都不能少。

2、修改文件后缀

rename "s/.html/.php/" * # 把.html 后缀的改成 .php后缀

rename "s/.png/.jpg/" * # 将 png 改为 jpg

3、批量修改文件后缀

rename "s/$/.txt/" * # 把所有的文件名都以txt结尾

因为支持正则表达式,那么 $ 表示的就是结尾,将结尾替换为 .txt 也就意味着给所有文件添加 .txt 的后缀

4、批量删除文件名

rename "s/.txt//" * # 把所有以.txt结尾的文件名的.txt删掉

结尾有 .txt 的内容替换为空,也就是删掉后缀了。

注意,这里只是删除了文件名中的字段,并不是把文件给删掉。

linux批量替换文件名中的日期,rename:Linux 批量修改文件名命令,支持正则表达式...相关推荐

  1. linux中替换文件中的内容,linux下批量替换文件中的内容linux操作系统 -电脑资料...

    对于单个文件,使用sed命令很容易做到, grep命令可以查找单个文件或文件夹下文件中的内容,使用参数"r"或"-R"可以递归查找指定文件夹下的所有文件:参数& ...

  2. Linux批量替换带横杠日期

    Linux批量替换带横杠日期 原始测试文件 AAAA2019-12-10.txt BBBB2019-12-10.txt CCCC2019-12-10.txt 替换成 AAAA20191210.txt ...

  3. python如何替换文件部分内容_python 实现批量替换文本中的某部分内容

    一.介绍 在做YOLOv3项目时,会需要将文本文件中的某部分内容进行批量替换和修改,所以编写了python程序批量替换所有文本文件中特定部分的内容. 二.代码实现 import re import o ...

  4. python一键替换_python 实现批量替换文本中的某部分内容

    一.介绍 在做YOLOv3项目时,会需要将文本文件中的某部分内容进行批量替换和修改,所以编写了python程序批量替换所有文本文件中特定部分的内容. 二.代码实现 import re import o ...

  5. 服务器上批量替换html内的字符,如何批量替换字符串中的某个特定字符?

    如何批量替换字符串中的某个特定字符? 发布时间:2020-05-26 05:06:20 来源:51CTO 阅读:569 作者:小陈子057 前两天领导突然给了我一个excel文件(该文件的编码只是简单 ...

  6. 在Linux(unix)中,以波浪线“~”开始的文件名

     在Linux(unix)中,以波浪线"~"开始的文件名有特殊含义. 单独使用它或者其后跟一个斜线(~/),代表了当前用户的宿主目录.(在shell下可以通过命令"e ...

  7. 字体在ppt中可以整体替换吗_如何批量替换PPT中的字体?

    如何批量替换PPT中的字体? 时间:2016-06-03来源: 网络作者: 未知点击: 次 PPT制作技巧:如何批量替换PPT中的字体? 问题:如何批量替换PPT中的字体? 解答:其实PPT有专门的功 ...

  8. Python之Excel编辑-[小试牛刀]批量替换excel中字符串

    任务1:批量替换excel中指定字符串 解决思路: 逐个cell遍历Excel表格,进行字符串比对,找到匹配的cell,并将cell内容替换成新字符串 app = xw.App(visible=Tru ...

  9. AIX下批量替换文件中的字符串 linux替换包含换行符的内容

    示例:将所有CPP文件中的__cplusplus替换为 __cplusplus_xsz perl -p -i -e "s/__cplusplus/__cplusplus_xsz/g" ...

最新文章

  1. 最新 crtmpserver 源码的获取方法
  2. SystemCenter2012SP1实践(31)P2V迁移故障一则
  3. POJ 2870 求矩阵的加法
  4. R语言常用包分类总结
  5. 开源助推进NFV发展,红帽为运营商“定制”NFV落地方案
  6. 如何修改服务器mac地址,如何修改服务器mac地址
  7. vim 文本编辑器_Vim Windows安装指南–如何在PC上的PowerShell中运行Vim文本编辑器
  8. 鸿蒙系统 闹钟,华为鸿蒙2.0操作系统正式版
  9. MySql与SqlServer的一些常用用法的差别
  10. 一篇文章告诉你如何寻找水王(数组中存在超过一半的数字)
  11. 0-Day CI : 我是Linux内核质检员
  12. Java中关于二叉树详解
  13. 目标客户画像_数据运营实战(一):细分目标人群,结合用户画像的实践
  14. 二进制拆弹phase0
  15. 24点游戏开发实例(Qt含源码)
  16. Stm32F4x采用外部触发法测矩形波频率和占空比
  17. 2.7——golang数据类型【字符串类型】
  18. 如何解决Mac苹果笔记本键盘背光灯不亮的问题?
  19. su切换为root并输入root密码确定正确但会有卡顿并提示su: Permission denied
  20. springboot集成artemis

热门文章

  1. PMP备考战术:题海战术
  2. win10查看对方计算机名,win10系统巧用nbtstat命令快速探测对方计算机名称的操作方法...
  3. 从入局到腾飞 网易云信与在线教育的三年之约
  4. 固态硬盘多大合适 php,固态硬盘(SSD)显示容量为何比真实容量小?
  5. cad调了比例因子没反应_怎么使用比例因子来缩放CAD图纸?
  6. 2018校招顺丰测评
  7. MyBatis的分页原理
  8. 【云快讯】之五十一《惠普借道金山云正式进入中国》
  9. 移动端(iphone)上使用canvas绘图,为canvas添加了监听点击事件,结果在iphone上点击会出现闪屏
  10. 桝田省治的JRPG战斗数值设计 思路 理解