将 2 个具有不同扩展名的相似文件重命名为第一个文件,但保留扩展名

彼得·肖

我在同一目录中有一组 .m4v 和 .srt 文件,但名称仅匹配前 3 个字符。如何重命名 .srt 文件以匹配相应的 .m4v 文件(同时保留 .srt 扩展名)?

在此处输入图像描述

还在下雨

给定.m4vshell 变量中的一个名称,通过修剪第一个空格并添加文件名后缀name来获得相应文件的名称。.srt$name.srt

这是用${name%% *}.srt. 这将删除最长的后缀字符串匹配 *$name然后添加.srt到该结果的末尾。

文件的新名称.srt$name,但.m4v文件名后缀更改为.srt.

这是用${name%.m4v}.srt. 这将删除(最短)后缀字符串匹配.m4v$name然后添加.srt到该结果的末尾。

下面是一个循环,它使用上面的两个参数替换来重命名每个.srt文件,给定.mv4在当前目录中找到的文件列表。该循环还让您知道是否存在.m4v没有相应.srt文件的文件,或者该.srt文件的新名称是否已经存在。

for name in *.m4v; do
    if [ ! -e "${name%% *}.srt" ]; then
        printf 'Can not find .srt file for "%s"\n' "$name"
        continue
    elif [ -e "${name%.m4v}.srt" ]; then
        printf '.srt file for "%s" already exists\n' "$name"
        continue
    fi >&2

    mv -- "${name%% *}.srt" "${name%.m4v}.srt"
done

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

想在python中重命名2个具有不同扩展名的文件

将缩小的文件重命名为具有 *.min.js 扩展名是否有任何性能提升?

将一个扩展名重命名为另一扩展名的最简单的准系统方法是什么?

当所有文件具有不同的扩展名时,如何将文件夹中所有文件的扩展名更改为一个公共扩展名?

使用find命令将文件重命名为不带扩展名的相同文件名

将具有特定扩展名的所有文件复制到另一个目录,同时更改扩展名

串联2个具有不同文件扩展名的文件

将所有相同扩展名的文件移动到一个文件夹

查找具有2个不同扩展名的目录/ w文件

Shell Bash将扩展名添加到没有一个文件

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

将文件名从一个文件夹复制到另一个文件夹,同时保留原始扩展名

如何将具有特定扩展名的任何文件从一个位置批量移动到另一个位置?

使用Java将文件名列表重命名为另一个列表的文件名

将多个文件夹中的重复文件名重命名为另一个名称

遍历子目录,并(1)将文件复制到另一个目录(2)将其重命名为其md5哈希

Windows脚本将具有特定扩展名的30天以上的文件移动到另一个文件夹

将一堆扩展名为“ .jpg”的PNG图像重命名为“ .png”

如何将一个文件夹中的所有文件复制到另一个文件夹并更改扩展名?

批处理脚本将具有相同扩展名的文件移动到另一个目录的父子路径上

如何将具有特定扩展名的相同文件复制到终端中的另一个目录

如何将两个不同扩展名的不同目录的合并文件复制到一个目录中并删除重复的文件

从目录中过滤掉2个文件,它们的文件名略有不同,但是具有相同的扩展名并传递给函数

将特定类型/扩展名的文件从一个目录移动到另一个目录?

如何将文件复制到另一个目录,但带有另一个文件扩展名?

Sitecore-2个媒体项目。相同的文件名,不同的扩展名

如何在Linux / Unix中将多个文件从一个扩展名重命名为另一个扩展名?

如何将具有不同名称的多个文件重命名为file1,file2,file3等?

Webpack 2+:如何对具有相同扩展名的文件应用不同的加载器?