linux中 利用rename 批量重命名文件 批量文件改名字

linux 利用rename 批量重命名文件

用字符串替换的方式批量改变文件名 rename 命令存在两个版本用法上有所区别:

区分方法: rename --version 如果返回结果中包含 util-linux , 说明是 C 语言版本, 反之是 Perl 版本

区别:

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

# Perl版本 | Ubuntu(18),Mint(20)默认的是Perl版本$ rename --version/usr/bin/rename using File::Rename version 1.10# C语言版本 | Centos(7)默认的是C语言版本$ rename --versionrename,来自 util-linux 2.23.2


C语言版本, 支持通配符

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




语法:

Perl版本rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -e|-E perlexpr]*|perlexpr [ files ]
C语言版本rename [选项] 表达式 替换的字符 文件...



Perl 版本 举例:


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

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



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'



C版本,应用举例:

attachments-2022-09-dsom8lJ763181744f02ad.png


参考:https://rumenz.com/rumenbiji/linux-rename.html


  • 发表于 2022-09-07 12:09
  • 阅读 ( 1945 )
  • 分类:linux

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

698 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 347 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章