【问题标题】:change part of file name grep or rename更改部分文件名 grep 或重命名
【发布时间】:2013-11-01 21:05:50
【问题描述】:

我有各种名称的文件

"type_featAtype_featB"

“type_featAtype_featC”

我都需要

“type_featA”

被替换为

“开始”

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

“STARTtype_featB”

STARTtype_featC"

.

我一直在看重命名函数herehere

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

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

提前感谢您的帮助。

【问题讨论】:

  • 如何将type_featA 替换为STARTtype_featAtype_featB 转换为STARTtypeDM_featB
  • 人为错误:查看已编辑的问题

标签: grep rename file-rename


【解决方案1】:

一个更神秘的选择是使用 SED - 我想如果你无法访问 perl rename 函数(我承认它更简洁,更清晰),你会选择这样做:

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

【讨论】:

  • 我喜欢这个神秘的版本 ;-)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    rename 's/^type_featA/START/' *
    

    达到预期的效果。

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 2013-12-05
      • 1970-01-01
      • 2020-01-29
      • 2010-11-26
      • 2011-05-26
      • 1970-01-01
      • 2011-12-03
      • 2014-01-06
      相关资源
      最近更新 更多