如何重命名文件夹中的所有文件

如何重命名文件夹中的所有文件

我有一个文件夹,其中包含许多以相同结构命名的文件:

file.number1.2010.720p.otherinfo.mp4
file.number2.1990.720p.otherinfo.mp4
....

我想删除所有序列:

YEAR.720p.otherinfo

因此名称将是:

file.number1.mp4
file.number2.mp4
....

最后,我想删除除末尾的点(.)(.mp4)之外的所有点(.)

我应该使用什么命令来创建这样的脚本?

答案1

这将完成这项工作:

首先:rename通过在终端中运行以下命令进行安装:

sudo apt install rename

第二:在终端中,cd进入包含文件的目录。

最后:通过在终端中运行以下命令将文件重命名为所需的格式:

rename 's/^(.+)\.(.+)\.(.+)\.(.+)\.(.+)\.mp4$/$1$2.mp4/' *

完毕


注意:

要查看rename命令如何操作文件但不真正重命名它们(仅将输出打印到终端),您可以-n在其后添加选项。像这样:

rename -n 's/^(.+)\.(.+)\.(.+)\.(.+)\.(.+)\.mp4$/$1$2.mp4/' *

解释 - 根据要求哈姆扎

第1部分:

's/ORIGINAL/NEW/'

ORIGINAL用字符串替换NEW字符串。

要了解它的工作原理,非常简单:

  • 请在终端中运行rename -n 's/file.number1.2010.720p.otherinfo.mp4/NEW.mp4/' *
  • file.number1.2010.720p.otherinfo.mp4假设当前目录中有一个名为的文件。
  • 输出将是rename(file.number1.2010.720p.otherinfo.mp4, NEW.mp4)

第2部分:

^(.+)\.(.+)\.(.+)\.(.+)\.(.+)\.mp4$

从字符串的开头开始,然后匹配点之前的^一个或多个字符(任意字符)(.+)\.

将该组放入一个变量$1并重复四次(总共五次),将每组放入一个变量($2,,,)$3,直到达到表示。$4$5.mp4\.mp4

确保字符串.mp4以使用与$字符串末尾匹配的符号结尾。

但是,这部分有点灵活,如果文件命名不一致,并且文件名称中包含超过五个由点分隔的部分,则会产生不理想的结果,例如file.number1.2010.720p.otherinfo.extrainfo.mp4

如果是这种情况,请用下面更严格的正则表达式替换此部分。这样它只会对名称中由点分隔的五个部分的文件进行操作:

^([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)\.mp4$

第 3 部分:

$1$2.mp4

将新文件名定义为第一个组的变量下的内容$1(在本例中file)+第二个组的变量下的内容$2(在本例中number(x))+.mp4

第 4 部分:

*

对当前目录中的所有文件进行操作。

答案2

您可以使用cutbash字符串操作

第一种方法:仅限cut

for I in .*mp4
do
    echo mv "$I" "$(echo $I | cut -d. -f 1,2,6)"
done 

解释:

  • for...将选择所有.mp4文件
  • echo $I |I变量转换为下一个程序的输入
  • cut -d. -f 1,2,6将选择字段 1、2 和 6,其中字段由.

但是这种方法可能有问题,因为第 6 个字段可能不是扩展。


所以你可以有第二种方法:

for I in .*mp4
do
    echo mv "$I" "$(echo $I | cut -d. -f 1,2).mp4"
done 

使用该命令,您可以强制将扩展名设为.mp4。它可以工作,但是如果您拥有的文件不仅仅mp4具有相同的命名模式怎么办?


在这种情况下,您可以使用扩展选择:

for I in *mp4 *avi
do
    echo mv "$I" "$(echo $I | cut -d. -f 1,2).${I##*.}"
done
  • ${I##*.}将允许您选择最后一个.变量后面的内容I

注意:为了防止不良行为,我添加了echo命令以查看它们在实际运行之前会做什么。

答案3

选择所有文件并按 F2;然后执行以下操作。 批量重命名

https://docs.xfce.org/xfce/thunar/4.12/bulk-renamer/start

答案4

我总是使用 Thunar(文件管理器)来实现这一点,只需打开它,选择要更改的文件(剪切/粘贴/调整/替换字符),然后右键单击->重命名

您将获得一个精致的菜单,其中有很多选项和方法来更改文件名及其扩展名,并在右侧面板中查看它们的预览。

相关内容