更改部分文件名grep或rename

更改部分文件名grep或rename,grep,rename,file-rename,Grep,Rename,File Rename,我有不同的文件名 “type\u feattype\u featB” 及 “类型特征类型特征C” 我需要这些 “类型_featA” 被替换为 “开始” 因此将调用文件夹的新名称 “STARTtype_featB” 及 STARTtype_featC“ 我一直在看重命名函数和 但是,并非所有文件都有相同的后缀,事实上,它们都有不同的后缀,如示例中所示 因此,我希望了解如何使用命令仅替换文件名的一部分,如上所述,在一个文件夹中,每个文件都有一个唯一的后缀。 多谢各位 提前感谢您的帮助。假设您拥有作

我有不同的文件名

“type\u feattype\u featB”

“类型特征类型特征C”

我需要这些

“类型_featA”

被替换为

“开始”

因此将调用文件夹的新名称

“STARTtype_featB”

STARTtype_featC“

我一直在看重命名函数和

但是,并非所有文件都有相同的后缀,事实上,它们都有不同的后缀,如示例中所示

因此,我希望了解如何使用命令仅替换文件名的一部分,如上所述,在一个文件夹中,每个文件都有一个唯一的后缀。 多谢各位


提前感谢您的帮助。

假设您拥有作为perl发行版一部分的
重命名
实用程序,您可以说:

rename 's/^type_featA/START/' *
以实现所需的结果。

正确。您甚至可以编写:

rename 's/^type_featA/START/' my_folder/type_featA*
这个命令行非常适合Debian和其他派生发行版

但是,其他发行版可能会使用与Fedora、RedHat和CentOS不同的工具。在第二种情况下,正确的命令行是:

rename type_featA START my_folder/type_featA*

第二个工具将只替换第一个
type_featA
事件。

一个更神秘的选项是使用SED-我想如果您没有访问perl rename函数的权限,您会选择这样做(我承认它更简洁、更清晰):


ls*| sed-e'p;s/^type_featA/START/''xargs-n2 mv

START
替换
type_featA
如何将
type_featAtype_featB
转换为
STARTtypeDM_featB
?人为错误:参见问题编辑:我喜欢这个神秘的版本;-)