如何使用linux命令以其先前的目录名称重命名.html文件?

美国国家航空航天局

这是我的目录结构,我只想通过前两个目录名称将命名目录rev下的.html文件重命名。如何使用命令执行此操作?

    prj3
    |-- blk1
    |   |-- blk1.config
    |   |-- blk1.html
    |   |-- checklist13
    |   |   |-- checklist13.config
    |   |   |-- checklist13.html
    |   |   |-- checklist13.html~
    |   |   `-- rev2
    |   |       |-- rev2.config
    |   |       `-- rev2.html
    |   |-- checklist14
    |   |   |-- checklist14.config
    |   |   |-- checklist14.html
    |   |   |-- checklist14.html~
    |   |   `-- rev5
    |   |       |-- rev5.config
    |   |       |-- rev5.html
    |   |       `-- rev5.html~

预期产量:

    prj3
    |-- blk1
    |   |-- blk1.config
    |   |-- blk1.html
    |   |-- checklist13
    |   |   |-- checklist13.config
    |   |   |-- checklist13.html
    |   |   |-- checklist13.html~
    |   |   `-- rev2
    |   |       |-- rev2.config
    |   |       `--checklist_13_rev2.html
    |   |-- checklist14
    |   |   |-- checklist14.config
    |   |   |-- checklist14.html
    |   |   |-- checklist14.html~
    |   |   `-- rev5
    |   |       |-- rev5.config
    |   |       |-- checklist_14_rev5.html
    |   |       `-- rev5.html~

仅对于rev *文件夹内的所有rev * .html文件,都应该发生相同的预期输出。

雷切尔·弗莱(Rachel Frei)

这里有一个内胆,使用的组合findbasename以及dirname

find . -regex '.*/rev[0-9]+/rev[0-9]+.html' -exec sh -c 'mv -iv {} $(dirname {})/$(basename $(dirname $(dirname {})))_$(basename $(dirname {})).html' \;

它基本上使用find regex获取以rev#/ rev#.html结尾的路径,并使用组合构造新名称dirnamebasename提取父目录和父目录的父目录的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用目录名称重命名文件?

根据目录名称重命名文件

根据目录名称重命名文件

如何使用其父目录的名称重命名文件?

使用父目录名称重命名多个不同名称和扩展名的文件

如何重命名所有文件以包含目录名称?

提取目录中的文件夹名称列表后,如何使用Python以其他格式重命名它们?

如何使用文件夹名称重命名文件列表

使用相同的名称重命名不同目录中的文件,因此每个文件都有唯一的(编号)名称

无法在Nginx上使用.html名称重命名特定的.php文件

使用Samba安装上的古怪名称重命名文件

使用备用BaseName查找(CSV)名称重命名文件

如何在C ++中使用“未知”名称重命名文件?

如何从子目录导入文件并使用子目录名称R命名它们

如何使用其他文件夹中文件的相同名称重命名多个图像?

在Linux上按文件夹的文件夹名称重命名文件

将子目录中的多个文件重命名为其目录名称

使用父文件夹的名称重命名子文件夹中的文件

Bash:使用文件夹名称重命名文件(每个文件夹 1 个)

使用 bash `find` 使用文件夹名称重命名文件

查找 index.html 文件并使用文件夹名称重命名并将文件向上移动一个级别

根据另一个目录中文件的名称重命名目录中的文件

如何根据文本文件中的名称重命名文件?

如何根据文件夹名称重命名文件名?

如何在保持文件扩展名的同时将目录中的文件重命名为其各自的目录名称?

使用文件夹名称重命名文件夹中的所有图像

在不同文件夹中使用相同名称重命名文件

重命名目录名称中包含扩展名的树中文件

根据目录名称中的多个字符重命名文件