Ubuntu中rename命令和批量重命名

直接在终端中输入rename+[Enter]可以看到该命令的格式:

早期版本的rename是C语言版本,如今新的Ubuntu中采用的都是perl版本,功能更加强大

Usage:rename [-v] [-n] [-f] perlexpr [filenames]

-v(verbose)打印被成功重命名的文件
-n(no-act)只显示将被重命名的文件,而非实际进行重命名操作
-f(force)覆盖已经存在的文件
perlexprPerl语言格式的正则表达式
files需要被替换的文件(比如*.c、*.h),如果没给出文件名,将从标准输入读

常用的参数是-n,可以先用-n参数对一部小部分图片进行测试,每次执行命令会在terminal中把效果列出来,等确保没问题后去掉-n参数,再对全部数据进行统一处理。

此次应用是为了批量重命名一批图片文件(自己的图片数据,作为caffe训练和测试数据使用)

本来全部都是这种格式:

(1).jpg

(2).jpg

…..

要改为:

test_001.jpg

test_002.jpg

……

用了比较笨的办法:先把括号去掉,再统一改格式(假定图片文件存放在terminal打开的当前目录位置)

1、去掉括号

rename -n ‘s/[()]//g‘ *.jpg

解释:
-n直接打印结果在终端中而非实际执行
引号中是perl的正则表达式,用来匹配和替换,s代表substitution,替换的意思
[()]代表匹配[]中的内容
//两个斜杠之间是空代表替换为空的内容,相当于删除
g代表全部匹配,不加g的话默认只会匹配一个括号

此处的效果类似,是将文件名中的下划线以及数字3,看图中效果应该就明白了:

2、继续重命名为想要的格式

rename -n ‘s/^/test_/‘ *.jpg

解释:
s-替换
^-在文件名称开头加字符
test_-将名称前面添加上test_

效果如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-30 23:24:18

Ubuntu中rename命令和批量重命名的相关文章

教你在Win10电脑中给照片快速批量重命名的方法

我们在win10系统电脑的使用中,有时候在一些工作上的小气叫可以帮助我们在工作中做到事半功倍的效果,有小伙伴想要实现在win10中批量给图片重命名的操作方法,今天小编就来把方法分享给大家,一起来看一下教你在Win10电脑中给照片快速批量重命名的方法. 具体的方法和详细的步骤如下: 1.把所有需要重命名的照片放入同一个文件夹中,例如"2016年10月连云港旅游留念",全部选中这些照片,然后在第一张照片上点右键选择"重命名": 2.重命名为"2016年10月连

Linux中rename命令用法学习 修改文件名

如何用命令修改文件名呢?在linux下可以用rename命令,当然还可以使用mv命令,这里分享下linux rename命令的用法. 有一部分人说linux下没有rename命令,建议大家用mv命令.对rename命令和mv命令在重命名文件方面做一个比较,大家根据个人喜欢选择使用吧. mv命令,在man mv中对于mv命令的介绍:mv -move(rename) files 可以看到mv命令确实有重命名的功能,但是实际应用中,它只能对单个文件重命名,命令如下:mv [path/]oldfilen

linux下rename用法--批量重命名

Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了, 由于历史原因,在Perl语言大红大紫的时候,Linux的工具开发者们信仰Perl能取代C,所以大部分工具原来是C版本的都被Perl改写了,因为 Perl版本的支持正则处理,所以功能更加强大,已经不再需要C语言版本的了.   1.如何区分系统里的rename命令是哪个版本的?   输入man rename 看到第一行是 RENA

Fedora25批量重命名——rename巧用

大家可能会遇到这样的类似情况,请看图: 大量文件名,重复含有相同的字符,而且并没什么用,想批量修改文件名的话,如果一个一个修改很浪费时间精力.今天就和大家分享一个fedora中简单批量重命名的方法--rename命令: 先确定需要重命名的文件所在路径: 再确定这一批文件名中哪些重复的字符需要替换,需要替换成什么字符: 打开终端,cd到需要重命名文件的目录 执行: $rename 被替换的字符 替换成的字符 文件类型范围 例如:我将图片所示目录中的所有.mp4文件名中"少男"替换成&qu

在python中实现对文件的写入,读取,复制,批量重命名

1.写入内容至文件中 def write_file(): open_file = open("xxxx.txt","w") open_file.write("i want to open a file and write this.\n") open_file.close() write_file() 2.读取文件中的内容 #思路:1.以什么方式打开 2.读取文件 3.关闭文件 def read_file(): read_file = open(

通过DOS命令批量重命名文件

以下为提供的两种方法:遍历当前目录下的所有文件名以.avi结尾的文件,然后权限规则进行修改(规则含义请自行查找资料).第一种方法有缺陷,更改完所有的文件名后,会多改一次.请斟酌使用.第二种方法解决了第一个方法的不足. 方法一: 1 @echo off   2 setlocal enabledelayedexpansion   3    4 for /f "delims="  %%a in ('dir /a-d /s /b *.avi') do (   5     echo "

rename 批量重命名

使用背景,对规则文件名批量重命名 例如: Send_Message_20160802_01_log.log Send_Message_20160802_02_log.log Send_Message_20160802_03_log.log Send_Message_20160802_04_log.log Send_Message_20160802_05_log.log 需要重命名为: Send_Message_20160802_17_01_log.log Send_Message_2016080

Mac / Linux Shell 批量重命名的方法总览

Linux Shell 批量重命名的方法总览 0.用类似 GPRename 这样的图形软件进行批量重命名 1.删除所有的 .bak 后缀: rename 's/\.bak$//' *.bak 2.把 .jpe 文件后缀修改为 .jpg: rename 's/\.jpe$/\.jpg/' *.jpe 3.把所有文件的文件名改为小写: rename 'y/A-Z/a-z/' * 4.将 abcd.jpg 重命名为 abcd_efg.jpg: for var in *.jpg; do mv "$var

linux下的文件操作——批量重命名

概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: rename 's/\.bak$//' *.bak 注意,这个命令的格式组织如下:s/   \.bark$   / / 是s/para1/para2/ 这个有点想sed的语法,将para1匹配的字符串换成para2 2.把 .jpe 文件后缀修改为 .jpg: rename 's/\.jpe$/\.jpg/'