如何按名称将文件移动到匹配的文件夹 - 如果文件夹不存在 - 创建它们

问题描述 投票:0回答:0

我的 ~/Downloads 目录中有数千张图片,我希望我可以编写一个脚本来自动处理这个负担,但唉,我很虚弱。

简而言之脚本应该做的:

  1. 脚本应该尽可能按 mime 类型查找图像(jpg、png、webp、avif、jxl),因为故障安全?

  2. 脚本应该找到具有相同标题名称的图像,例如:

    • Screenshot XXXX-XX-XX at XX-XX-XX Same Title Name.png
      并移动到
      ~/Pictures/Screenshots/Same Title Name/
    • Same Title Name.png
      并移动到
      ~/Pictures/Screenshots/Same Title Name/
  3. 脚本应尝试在 ~/Pictures/Screenshots/ 中找到具有相同 Title Namemove 图像到 ~/Pictures/Screenshots/Same Tile Name 的文件夹。 如果没有找到具有相同标题名称的匹配文件夹,那么它应该创建只有标题名称单独的文件夹并将图像移动到那里。

我经常用浏览器的截图工具截图,结果截图是这样的:

  • Screenshot XXXX-XX-XX at XX-XX-XX Title Name - Mangadex.png 

创建的文件夹或匹配的文件夹应该是

Title Name 

  • Screenshot XXXX-XX-XX at XX-XX-XX Title-name-is-here-Dude-u-15?! - VolXX. Ch.XXX - Chapter Name Here - Mangadex.png

创建的文件夹或匹配的文件夹应该是

Title-name-is-here-Dude-u-15?!

  • Screenshot XXXX-XX-XX at XX-XX-XX sAmE-TitLE - Mangadex.png

创建的文件夹或匹配的文件夹应该是

sAmE-TitLE

  • sAmE-TitLE.jpg

创建的文件夹或匹配的文件夹应该是

sAmE-TitLE

澄清一下,

X
numbers并且基本上是日期
Screenshot 2023-05-09 at 22-12-08
。 提醒一下,标题是不同的,所以几乎
Screenshot XXXX-XX-XX at XX-XX-XX
 - Mangadex.png
之间的所有单词都应该作为标题,我说几乎是因为
VolXX. Ch.XXX - Chapter Name Here
事情变得有点复杂因为
 Chapter Name Here
也可以是随意的一句话。和
VolXX. Ch.XXX
可以是任何数字。

至少告诉我我应该专注于研究什么工具来实现这一目标。

感谢您的阅读。

regex bash match move
© www.soinside.com 2019 - 2024. All rights reserved.