首页 > 其他分享 >rename

rename

时间:2024-01-13 15:55:06浏览次数:16  
标签:rename log -- sh txt yechangyao

rename

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

补充说明

rename命令存在两个版本用法上有所区别

C语言版本, 支持通配符
[常用通配符说明]
?    表示一个任意字符
*    表示一个或一串任意字符

Perl版本, 支持正则表达式
[常用正则表达式符号说明]
^    匹配输入的开始位置
$    匹配输入的结尾
.    匹配除换行符外的任意字符
+    匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"
[a-z]    表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
[^m-z]    否定的字符区间。与不在指定区间内的字符匹配。

区分方法: rename --version

如果返回结果中包含 util-linux , 说明是C语言版本, 反之是Perl版本

# Perl版本 | Ubuntu(18),Mint(20)默认的是Perl版本
$ rename --version
/usr/bin/rename using File::Rename version 1.10

# C语言版本 | Centos(7)默认的是C语言版本
$ rename --version
rename,来自 util-linux 2.23.2

语法

# Perl版本
rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -e|-E perlexpr]*|perlexpr [ files ]

# C语言版本
rename [选项] 表达式 替换的字符 文件...

参数

# Perl版本
-v, --verbose 详细:成功重命名的文件的打印名称。

-0, --null 从STDIN读取时,请使用\0作为记录分隔符

-n, --nono 不执行任何操作:打印要重命名的文件名,但不重命名。

-f, --force 覆盖:允许覆盖现有文件

--path, --fullpath 重命名完整路径:包括任何目录组件。默认

-d, --filename, --nopath, --nofullpath 不重命名目录:仅重命名路径的文件名部分

-h, --help 帮助:打印提要和选项。

-m, --man 手册: 打印手册页.

-V, --version  版本: 显示版本号.

-e      表达: 作用于文件名的代码.

        可以重复来构建代码(比如“perl-e”)。如果没有-e,则第一个参数用作代码。

-E      语句:对文件名执行操作的代码,如-e,但终止于 ';'.


# C语言版本
-v, --verbose 提供视觉反馈,其中重命名了哪些文件(如果有的话)

-V, --version 显示版本信息并退出。

-s, --symlink 在符号链接目标上执行重命名

-h, --help 显示帮助文本并退出

Perl版本

将1.txt 2.txt重命名为1.log 2.log

$ rename -v "s/txt/log/g" 1.txt 2.txt
1.txt renamed as 1.log
2.txt renamed as 2.log

修改文件的后缀

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

批量添加文件后缀

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

批量删除文件名

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

C语言版本

将1.txt 2.txt重命名为1.log 2.log

$ rename -v txt log 1.txt 2.txt
`1.txt' -> `1.log'
`2.txt' -> `2.log'

案例

[root@localhost130 yechangyao]# ls
Centos-7.repo  cout_test.txt  Documents  epel-7.repo  hello.sh  news.txt  Public     test001.tar     test1108.txt  test3       test.txt      ttxt.txt  yechangyao
core.10299     Desktop        Downloads  expr.sh      Music     Pictures  Templates  test002.tar.gz  test2         testFor.sh  text1108.txt  Videos
[root@localhost130 yechangyao]# rename --version 
rename from util-linux 2.23.2
[root@localhost130 yechangyao]# rename txt log ttxt.txt 
[root@localhost130 yechangyao]# ls
Centos-7.repo  cout_test.txt  Documents  epel-7.repo  hello.sh  news.txt  Public     test001.tar     test1108.txt  test3       test.txt      tlog.txt  yechangyao
core.10299     Desktop        Downloads  expr.sh      Music     Pictures  Templates  test002.tar.gz  test2         testFor.sh  text1108.txt  Videos
[root@localhost130 yechangyao]# rename log txt tlog.txt 
[root@localhost130 yechangyao]# ls
Centos-7.repo  cout_test.txt  Documents  epel-7.repo  hello.sh  news.txt  Public     test001.tar     test1108.txt  test3       test.txt      ttxt.txt  yechangyao
core.10299     Desktop        Downloads  expr.sh      Music     Pictures  Templates  test002.tar.gz  test2         testFor.sh  text1108.txt  Videos
[root@localhost130 yechangyao]# rename .txt .log ttxt.txt 
[root@localhost130 yechangyao]# ls
Centos-7.repo  cout_test.txt  Documents  epel-7.repo  hello.sh  news.txt  Public     test001.tar     test1108.txt  test3       test.txt      ttxt.log  yechangyao
core.10299     Desktop        Downloads  expr.sh      Music     Pictures  Templates  test002.tar.gz  test2         testFor.sh  text1108.txt  Videos
[root@localhost130 yechangyao]# 

标签:rename,log,--,sh,txt,yechangyao
From: https://www.cnblogs.com/yechangyao/p/17962447

相关文章

  • 无涯教程-Redis - RENAMENX命令函数
    RedisRENAMENX命令用于更改键(key)名称。RENAMENX -返回值整数1或0。1,如果键(key)已重命名为新键(key)。0,如果已经存在新键(key)。RENAMENX -语法以下是RedisRENAMENX命令的基本语法。redis127.0.0.1:6379>RENAMENXOLD_KEY_NAMENEW_KEY_NAME首先,在Re......
  • 将第2层数据中的数组对象中的ts属性、value属性遍历单独存放到一个新数组中xData、yDa
          ......
  • Docker CLI docker rename 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中......
  • 解释pandas.Series.rename_axis
    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.rename_axis.html`pandas.Series.rename_axis`是一个用于设置索引或列轴名称的函数¹。以下是该函数的一些参数¹:-`mapper`:可选,标量或类似列表。用于设置轴名称属性的值。-`index`,`columns`:可选,标......
  • 解释 pandas.series.rename函数的每个参数
    `pandas.Series.rename`是一个用于更改Series索引标签或名称的函数¹。以下是该函数的一些参数¹:-`index`:可选,标量,可哈希序列,类似字典或函数。函数或类似字典的对象是应用于索引的转换。标量或可哈希的序列将改变Series的`name`属性¹。-`axis`:默认为0。未使用。需要此......
  • Linux命令(106)之rename
    linux命令之rename1.rename介绍linux命令rename是用来重命名文件名称。与mv不同的是,mv命令一次只能修改一个文件名,而rename命令能够对文件名进行批量修改2.rename用法rename[options]expressionreplacefile...rename参数参数说明-v详细输出执行的操作-s在符号链接上执行-......
  • [20231103]rename IDL_UB1$后使用bbed的恢复3.txt
    [20231103]renameIDL_UB1$后使用bbed的恢复3.txt--//上午解决renameIDL_UB1$后使用bbed的恢复问题,就是涉及到的5个索引4个需要修改,其中一个因为NULL值的缘故,不需要修改。--//主要原因是rename是delete再insertobj$,反过来思考,如果修改时长度等长,我仅仅需要name等于原来的字符......
  • [931] arcpy - buffer, delete shp and rename shp
    Thescriptisasfollows:arcpy.analysis.Buffer("siteboundary.shp","siteboundary1.shp","-5Centimeters","FULL","ROUND","NONE",None,"GEODESIC")arcpy.management.Delete("siteboundary......
  • [20231013]rename IDL_UB1$的恢复.txt
    [20231013]renameIDL_UB1$的恢复.txt--//看了https://www.anbob.com/archives/7545.html链接,对方rename操作,导致无法建立表操作.--//idl_ub1$表是用来存储PL/SQL的代码单元的,包括DIANA等,IDL在这里代表InterfaceDefinitionLanguage.--//这个对象的含义可以从Ixora找到一点提示......
  • [20231019]rename IDL_UB1$的恢复测试前准备.txt
    [20231019]renameIDL_UB1$的恢复测试前准备.txt--//前几天看了https://www.anbob.com/archives/7545.html链接,对方renameIDL_UB1$表操作,导致无法建立表操作使用包的语句都有问题.--//测试时遇到许多其他事情打断了恢复工作,最后我仅仅简单尝试了修改数据字典obj$的恢复方式。--......