更改文件名grep或重命名的一部分

时间:2013-10-23 14:15:18

标签: grep rename file-rename

我有各种名称为

的文件
  

"type_featAtype_featB"

  

“type_featAtype_featC”

我需要所有

  

“type_featA”

替换为

  

“START”

所以文件夹的新名称将被称为

  

“STARTtype_featB”

  

STARTtype_featC“

我一直在查看重命名功能herehere

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

因此,我正在寻找有关如何使用命令来替换文件名的一部分的见解,如上面在一个文件夹中所示,其中每个文件具有唯一的后缀。 谢谢

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:7)

更隐蔽的选择是使用SED - 我想如果你无法访问perl重命名功能(我承认更简洁,更清晰),你会选择这样做:

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

答案 1 :(得分:3)

假设您拥有属于perl发行版的rename实用程序,您可以说:

rename 's/^type_featA/START/' *

以达到理想的效果。

答案 2 :(得分:1)

devnull's answer是正确的。你甚至可以写:

rename 's/^type_featA/START/' my_folder/type_featA*

这个命令行在Debian和其他派生的发行版中是完美的。

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

rename type_featA START my_folder/type_featA*

此第二个工具将仅替换第一个type_featA次发生。