千家信息网

linux如何快速批量重命名文件

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章将为大家详细讲解有关linux如何快速批量重命名文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. rename命令顾名思义,rename命令就是用来进
千家信息网最后更新 2025年02月05日linux如何快速批量重命名文件

这篇文章将为大家详细讲解有关linux如何快速批量重命名文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1. rename命令

顾名思义,rename命令就是用来进行重命名文件名的。rename命令有非常强大的功能,我们可以用它来实现各种各样复杂的文件名的修改。但是,本文只介绍它最最基本的功能,后期再更新rename其它强大的重命名功能。rename的最基本的格式如下:

rename 源字符串 目标字符串 文件

其中,源字符串表示原文件名需要替换的字符串,可以是原文件名的全部或部分;目标字符串就是想要替换成的字符串;文件就是需要更改文件名的文件列表,可以是一个或多个。

现假如目录下有一堆 atb_mod_01.cpp,atb_mod_02.cpp,atb_mod_03.cpp,atb_mod_04.cpp 等形式的文件,我们的需求是将文件名中的 mod 改成 adb,那么完成这个需求的命令如下:

[alvin@VM_0_16_centos exp3]$ ls atb_mod_01.cpp  atb_mod_02.cpp  atb_mod_03.cpp  atb_mod_04.cpp[alvin@VM_0_16_centos exp3]$ rename mod adb *[alvin@VM_0_16_centos exp3]$ lsatb_adb_01.cpp  atb_adb_02.cpp  atb_adb_03.cpp  atb_adb_04.cpp

2. mv命令配合for循环方式

假如我们现在有一堆 .txt 文件,我们想将它们的后缀改成 .cpp。先来看完整的代码:

#!/bin/bash for name in `ls *.txt` do     mv $name ${name%.txt}.cpp done

我们都知道,在Linux里重命名是用 mv 命令,那批量重命名自然会想到用循环语句嵌套mv命令。

在这里,我们用 ls *.txt 将当前目录下所有的txt文件全部列出来,然后逐个放在name变量里去循环操作。

在循环体里,我们使用mv命令进行重命名。这里我们使用 ${name%.txt} 这种字符串处理方式,表示从name尾部开始删除与 .txt 匹配的最小部分,并返回剩余部分。之后,再加上 .cpp 后缀。通过这种操作,我们就可以将文件名后缀从.txt改为.cpp。最后我们用mv命令将这个文件名真正改过来。

3. sed命令配合for循环方式

假如我们现在有一堆文件,文件名格式是 test01.txt,test02.txt,test03.txt,test04.txt 也就是前半部分是英文,后半部分是数字。我们现在想将文件名改成 test-01.txt 这种形式。这次,我们用sed命令来完成这个需求。

我们还是先来看看完整的代码。

#!/bin/bash for file in `ls *.txt` do      newFile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`      mv $file $newFile done

前面一样用 ls \*.txt 来获取所有的 .txt 文件。之后再用echo命令将其顺次输出,作为sed命令的输入。

接下来,到达关键部分了。乍一看sed的命令可能有点可怕,但老司机早已习以为常了。反引号里的内容其实是这样的基本结构:

s/ 原字符串 / 替代的字符串 /

这里我们用到了分组匹配,也就是用括号按照一定的正则表达式将原字符串进行分组,后面再用 \1,\2,\3…… 来引用前面的分组,从而在替代的字符串里拼凑成相应的格式。

前文已讲述,原文件名是由前部分英文及后部分数字所构成的,英文可以用 [a-z]+ 表示,数字可以用 [0-9]+ 表示。注意不要忘记加号,表示前面字符的若干重复。然后,我们用\1、\2分别引用前面的对应部分,再用横杆连起来,于是就成了这样:

s/([a-z]+)([0-9]+)/\1-\2/

因为在不同的Shell里,括号及加号可能会有不同的含义,所以前面要再加一个转义符,于是就成了前面所见到的样子。

再之后,同样使用mv命令完成重命名动作。

关于"linux如何快速批量重命名文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文件 命令 字符 字符串 文件名 部分 循环 功能 后缀 就是 数字 方式 格式 篇文章 需求 英文 分组 不同 强大 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术专科考公务员难吗 服务器风扇管理软件 软件开发工程师工资表 亚太第一网络技术有限公司 金融机构研发网络安全环境 软件开发项目如何评估工程量 云服务器存储和本地保险哪个好 鄞州职教中心计算机网络技术 vim连接windows服务器 网吧的普通电脑能进总服务器吗 dns服务器配置解析文件 数据库原理 第五版 完整版 湖北服务器机柜厂家现货 软件开发背景说明 四川网络安全培训课程 宁波江北区财务软件开发报价 互联网之光博览会天玑科技 我的世界卡慕服务器 vr眼镜连接不到服务器 甲骨文数据库建表 数据库和3s技术 数据库钱的类型 计算机网络技术 南炯 数据库中没有时间显示 2021房产数据库营销 有主机还需要服务器吗 阿里云服务器流量计费价格表 玄武区第三方软件开发创新服务 上海市网络安全态势感知平台 中国互联网科技上市公司排名
0