rename(Perl语言版本) 详解

2019-03-19 22:51:23 wayne17 阅读数 464更多

分类专栏: Ubuntu之路
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

rename 是 linux 系统中的一个小工具(支持正则),主要用于更改文件名,批量改更见效率!注意结合文件名的通配符使用(?, *),才能更大发挥其效用!

预备知识

正则表达式符号 含义
^ 匹配输入的开始位置
$ 匹配输入的结尾
. 匹配除换行符外的任意字符
+ 匹配输入字符一次或多次 例如,“c+“可以匹配"cd"或"cads”,但不匹配末尾字符"c”
a-z 表示某个范围内的字符,例如,"a-z"匹配"a"与"z"之间的任何一个小写字母字符。

查找替换文件名子串

将每个文件名中第一个 ‘a’ 换成 ‘4’:

rename 's/a/4/' *  

将每个文件名中所有 ‘a’ 换成 ‘4’:

rename 's/a/4/g' *		# 注意 g 的含义(所有,不止第一个)

去除某种文件后缀名(.cpp为例):

rename 's/\.cpp$//' *	# ’\‘ 为转移字符,'\.' 转义为 .

将文件名中大写字母转小写:

rename 'y/A-Z/a-z/' *

将所有文件统一加上后缀(.txt 为例):

rename 's/$/.txt/' *

将所有文件后三个字符换成 abc

rename 's/...$/abc/' *	# 几个字符就用几个点

将所有文件统一加上前缀(abc 为例):

rename  's/^/abc/' *	

统一删除某前缀(abc 为例):

rename  's/^abc//' *	

统一删除某后缀(abc 为例):

rename  's/abc$//' *	

将所有文件前三个字符换成 abc

rename 's/^.../abc/' *	 # 几个字符就用几个点

将以字符 ‘c’ 开头且第四个字符为 ‘w’ 的文件名中的 ‘aa’ 换成 ‘bb’:

rename 's/aa/bb/' c??w*
几个常用参数(必须紧跟在 rename 后)
-v  		打印成功改名后的文件名
-n(常用)		打印即将改名的文件名,但不执行操作(预览)
-f			强制覆盖已有文件

[转帖]rename(Perl语言版本) 详解的更多相关文章

  1. java newInstance() 的参数版本与无参数版本详解

    newInstance() 的参数版本与无参数版本详解 博客分类: Core Java   通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.new ...

  2. 深入理解C语言 - 指针详解

    一.什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址.CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位.这里,数据对象是指存储在 ...

  3. [转帖]nginx服务器安装及配置文件详解

    nginx服务器安装及配置文件详解 http://seanlook.com/2015/05/17/nginx-install-and-config/  发表于 2015-05-17 |  更新于: 2 ...

  4. [转帖]Windows注册表内容详解

    Windows注册表内容详解 来源:http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html 对 windows注册表一知半解 不是很清晰 这里学习一下 ...

  5. [转帖]Linux:cut命令详解

    Linux:cut命令详解 https://www.cnblogs.com/Spiro-K/p/6361646.html cut -f cut -f -d cut -c1- 这三个命令好像最常见, 记 ...

  6. [转帖]Nginx安装及配置详解 From https://www.cnblogs.com/zhouxinfei/p/7862285.html

    Nginx安装及配置详解   nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP ...

  7. c++、Java、python对应的编译型语言和解释性语言区别详解

    1.首先明确一点: 高级语言是不能直接在CPU上运行的.CPU只能处理机器语言,就是黑客帝国里面那个10101010101110的数字流. 那么为了让机器语言能够在CPU上运行,那么就必须将其变成机器 ...

  8. [转帖]Vim编辑器使用方法详解

    Vim编辑器使用方法详解 程序员小新人学习 2018-12-16 12:26:23 转载于https://www.cnblogs.com/libaoliang/articles/6961676.htm ...

  9. [转帖]JVM性能调优详解

    JVM性能调优详解 https://www.cnblogs.com/secbro/p/11833651.html 应该是 jdk8 以前的方法 貌似permsize 已经放弃这一块了. 前面我们学习了 ...

随机推荐

  1. Javascript的数据类型(原始类型和引用类型)

    1.ECMAScript3中定义了变量可分为原始值和引用值. 原始值:是保存在栈(stack)中的简单数据段:也就是说他们的值是直接存储在变量访问的位置. 引用值:是保存在堆(heap)中的对象,也就 ...

  2. Linux下g++编译thread出错的的解决方法

    错误如下图所示: 因为thread是C++11新加入的特性,所以我们在用g++编译的时候不能直接用,需要在g++后面加上 -std=c++0x -pthread 如果是gcc编译多线程的话则应该要用 ...

  3. nginx if配置说明

    格式:if (条件判断) { 具体的rewrite规则 } 条件举例: 条件判断语句由Nginx内置变量.逻辑判断符号和目标字符串三部分组成. 其中,内置变量是Nginx固定的非自定义的变量,如,$r ...

  4. C++ STL(标准模板库)的学习了解

    C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表.队列.栈. C++ 标准模板库的核心包括以 ...

  5. SpringBoot之KindEditor文件上传

    后端核心代码如下: package com.blog.springboot.controller; import java.io.BufferedOutputStream; import java.i ...

  6. 分析WordPress数据表之评论表(功能篇)

    数据表分析 wp_comments(评论表) 该表字段,如下:comment_ID(评论ID)comment_post_ID(评论文章ID)comment_author(评论者用户名)comment_ ...

  7. jenkins使用--安装文档

    添加Jenkins的源(repository): #sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/je ...

  8. Mysql中联合索引的最左匹配原则(百度)

    创建联合索引时列的选择原则 经常用的列优先(最左匹配原则) 离散度高的列优先(离散度高原则) 宽度小的列优先(最少空间原则) 在Mysql建立多列索引(联合索引)有最左前缀的原则,即最左优先.如果我们 ...

  9. 删除DB2实例下的数据库

    db2ilist 查看所有实例  db2 get instance 查看当前连接的实例 db2 list db directory 查看当前实例下连接的数据库 ==================== ...

  10. mysql 排序长度限制之max_length_for_sort_data以及mysql两种排序算法

    SET max_length_for_sort_data = 1024 SHOW VARIABLES LIKE '%max_length_for_sort_data%'; 查询:SELECT * FR ...