重命名,根据新名称创建文件夹

b0red

我已经尝试这样做了几个月,但是我无法使其正常工作。我正在尝试bash。所有文件都在linux机器上,所以bash我猜呢?

我想做什么:对于目录中的所有文件,请使用以下条件重命名它们:

  • 如果文件名中带有方括号,则删除方括号并包括数字 [312646416198]
  • 如果文件有年份(2018),请保留该年份(并非都包含该年份
  • 如果文件中带有单个数字(1)的方括号,请删除方括号和数字

根据文件名的第一部分创建一个文件夹(例如,导致第一个连字符“-”的所有内容),然后将该文件移动到创建的文件夹中。

因此,例如,以下名称在经过一些处理后应该(理想情况下)看起来像这样。某些东西会放错地方,例如title出现在author之前,因此新文件夹将以title命名,而不是author命名,但是我可以接受,只有一小部分这样命名。

所以这:

The Brotherhood of the Rose - David Morrell.epub
Abbi Glines - Bad for You (2014) [9781481420761] (1).epub
Kristin Hannah - The Great Alone (2018) [9781250165619].epub
Stephanie Dray, Laura Kamoie - America's First Daughter - A Novel (2016) [9780062347268] (1).epub
Terence Hanbury White - The Once and Future King (1987) [9780441627400] (1).epub

变成这个:

The Brotherhood of the Rose
    The Brotherhood of the Rose - David Morrell.epub
Abbi Glines
    Abbi Glines - Bad for You (2014).epub
Kristin Hannah
    Kristin Hannah - The Great Alone (2018).epub
Stephanie Dray, Laura Kamoie
    Stephanie Dray, Laura Kamoie - America's First Daughter - A Novel (2016).epub
Terence Hanbury White 
    Terence Hanbury White - The Once and Future King (1987).epub
阿尔特姆·塔什基诺夫(Artem S.

这可能起作用:

$ cat epub-cleanup.sh

#! /bin/bash

for i in *.epub; do
    mv -iv "$i" "$(echo "$i" | sed -r 's/\[[0-9]+\]//;s/\([0-9]\)//;s/[ ]*.epub/.epub/')"
done
  1. 删除[0123456789]的单个实例
  2. 删除(1)的单个实例
  3. 在文件扩展名之前清理尾随空格

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ReadDirectoryChangesW C重命名文件夹后获取旧名称和新名称

根据文件夹名称重命名文件

根据文件夹名称重命名文件

使用部分文件夹名称作为新名称以递归方式复制和重命名文件

重命名同一文件夹中的图像(新名称+图像大小)时出现问题

Windows CMD-根据文件夹名称重命名文件

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

如果文件夹名称重复,如何根据上传的文件自动重命名文件夹

如何在python中逐行使用文本文件的新名称重命名文件夹中的文件名

根据文件内容重命名文件文件夹

根据视频名称创建文件夹,以将提取的帧保存到特定文件夹

根据发件人名称为附件创建文件夹

根据bash脚本中的名称有选择地创建文件夹

根据字典以CSV文件的形式重命名文件夹?

批处理文件-根据父名称和(子)文件夹名称重命名文件

在文件夹内创建文本文件,然后重命名文件夹以匹配其中的文件名

重命名文件并添加其父文件夹名称

通过文件夹名称重命名文件

Dolphin可以在不提示输入新名称的情况下在同一文件夹中创建文件的副本吗?

创建新文件夹并重命名并将所有具有特殊名称的文件夹移到新创建的文件夹中

从 csv 中的单列创建文件夹并使用其他列将文件重命名为文件夹

根据文件名自动创建文件夹

根据文件名创建文件夹

根据文件名 bash 创建文件夹

根据列表重命名多个文件夹

重命名Fedora中的文件夹名称

批量重命名文件夹名称中的特定文本

根据php中的输入字段创建文件夹

根据Spark Scala中的文件夹名称重命名和移动S3文件