rename - 用字符串替换的方式批量改变文件名 (**)

rename - 用字符串替换的方式批量改变文件名 (**)

Linux下批量修改文件名(rename)

rename - 用字符串替换的方式批量改变文件名 (**)

rename支持正则表达式

字母的替换

rename "s/AA/aa/" * # 把文件名中的AA替换成aa //此命令,只能修改当前目录下所有的文件

Linux下批量修改文件名方法 方法一:mv配合for循环方式进行修改

=====================

rename - 用字符串替换的方式批量改变文件名 (**)

用字符串替换的方式批量改变文件名

补充说明

rename命令 用字符串替换的方式批量改变文件名。

语法

rename(参数)

参数

原字符串:将文件名需要替换的字符串;

目标字符串:将文件名中含有的原字符替换成目标字符串;

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

实例

将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 foo foo0 foo??,foo01到foo99的所有文件都被重命名为foo001到foo099,只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。

如果使用rename foo foo0 foo*,foo001到foo278的所有文件都被重命名为foo0001到foo0278,所有以foo开头的文件都被重命名。

如果使用rename foo0 foo foo0[2]*,从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。

rename支持正则表达式

字母的替换

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

rename "s/AA/aa/" * # 把文件名中的AA替换成aa。注意:最后还有空格、加一个星号

修改文件的后缀

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

批量添加文件后缀

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

批量删除文件名

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

=============

Linux下批量修改文件名(rename)

https://blog.csdn.net/sea_shore/article/details/6102437

1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了

比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rename 'cdb1' 'cdb' *

以前都是写个for循环来做...想想多傻啊, 呵呵

rename还有更多的功能, 建议man rename下

From:http://www.hao32.com/unix-linux/42.html

2.批量更改文件名 rename

通过 man rename 命令可以得知,rename 命令其实是一个 Perl 脚本命令, 它专用于批量地给多文件重命名(rename multiple files)。命令格式: rename [ -v ] [ -n ] [ -f ] perlexpr [ files ] perlexpr 是一种 Perl 脚本格式的正则表达式。 参数: -v, --verbose Verbose: print names of files successfully renamed. 详细模式:打印成功更改的文件名列表 -n, --no-act No Action: show what files would have been renamed. 测试模式:并不真正的执行命令,而只是显示哪些文件名应该怎么进行 更改,用于测试模式。 -f, --force Force: overwrite existing files. 强制模式:在更改文件名,如果更改后的文件已经存在时覆盖已经存在 的文件。rename 的典型应用:0. 批量更改文件扩展名 $ ls 1.txt 2.txt 3.txt 4.txt $ rename 's//.txt//.ext/' * $ ls 1.ext 2.ext 3.ext 4.ext1. 批量删除文件扩展名 $ ls 1.txt 2.txt 3.txt 4.txt $ rename 's//.txt//' * $ ls 1 2 3 42. 批量添加文件扩展名 $ ls 1 2 3 4 $ rename 's/$//.txt/' * $ ls 1.txt 2.txt 3.txt 4.txt3. 按自己的方式批量重命名文件 $ ls 1.ext 2.ext 3.ext 4.ext $ rename 's/(/d)/第$1 章/' * $ ls 第 1 章.ext 第 2 章.ext 第 3 章.ext 第 4 章.ext 3.

方法1:把文件名拆分处理,可以任意修改文件名

find -name '*.log' -printf %f//n|awk -F'.' '{print $1}'|xargs -i{} mv {}.log xiyun_{}.log

方法2:利用rename

一般的linux下的rename命令比较简单

rename 'test' 'xiyun' '*.log'

把文件名中的某部分字符串替换掉

ubuntu下的rename命令支持正则表达式,因此功能更强大。

方法3:直接利用find和xargs和mv,中间不用awk,这样只能添加后缀名,不能修改文件名。 From:http://blog.chinaunix.net/u/22583/showart_1964649.html

Linux下批量修改文件名方法

对于在Linux中修改文件名的方式一般我们会用mv命令进行修改,但是mv命令是无法处理大量文件修改名称。

但是在处理大量文件的时候该如何进行批量修改呢?

方法一:mv配合for循环方式进行修改

[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

方法二:sed命令

ls *jpg|sed -r 's#(.*).jpg#mv & \1.mp4#'|bash

方法三:rename命令

rename命令用字符串替换的方式批量改变文件名。

格式:rename 原名 替换名 要改的文件

原字符串:将文件名需要替换的字符串; 目标字符串:将文件名中含有的原字符替换成目标字符串; 文件:指定要改变文件名的文件列表。

[root@cache01 test]# ls

01.txt 03.txt 05.txt 07.txt 09.txt

02.txt 04.txt 06.txt 08.txt 10.txt

[root@cache01 test]# rename txt jpg *

[root@cache01 test]# ls

01.jpg 03.jpg 05.jpg 07.jpg 09.jpg

02.jpg 04.jpg 06.jpg 08.jpg 10.jpg

相关任务

365网络科技有限公司 中石化充值油卡后多久可以到账?
365网络科技有限公司 进口弓弩大比拼

进口弓弩大比拼

📅 08-22 👁️ 2271
365网络科技有限公司 梦景移动大楼

梦景移动大楼

📅 07-03 👁️ 8204
365bet网上娱乐平台 腾讯now直播怎么直播游戏教学 腾讯now直播总榜怎么看?