有一个名为文件机器人您可以在其中输入目录,然后从那里选择要匹配的数据库。最终结果是干净地重命名并且通常是媒体服务器认可的格式。
我的目标是只从 bash 运行它而不涉及第三方,无论准确性如何。
我能够使用重命名来删除 XXX 并替换为,但最终我被困在 .... 或 ... 或其他一些变体(空格、括号等...)。是否可以作为一个重命名运行,还是需要分离重命名实例来清理我的问题?
我知道反映的代码仅处于测试模式,因为我不想在不确定的情况下重命名任何东西。
请不要剧透答案,而要给出提示。如果有必要,我很乐意进一步挖掘,只是我不想得到最终答案。
find . -mindepth 1 -name "*.*" -exec rename -n 's/" "|"-YTS.LT|YTS.LT|1080p|720p|BRrip|BluRay|x264|AAC|WEBRip|YTS.AG|YTS.MX|YTS.AM|Deceit|-|BOKUTOX|YIFY|BrRip|\[|]//ig' {} \;
初始运行后的示例输出
rename(./Dick Tracy (1990) [BluRay] [720p] [YTS.LT]/Dick.Tracy.1990.720p.BluRay.x264-[YTS.LT].mp4, ./Dick Tracy (1990) /Dick.Tracy.1990....mp4)
``
答案1
您可以扩展每个名称匹配的搜索模式,以?
在不必要的点/括号和空格上包含可选匹配(术语之后)。尝试在一对|
分隔符内使用此模式格式:
[\[ \.-]+?(720p|BluRay)\]?
添加+
以发现双倍空格,并YTS\...
匹配任何格式YTS.
加上 2 个字符。
将它们放在您现有的表达中将有助于您进行下一步,即清理其他术语和过滤器:
find . -mindepth 1 -name "*.*" -exec rename -n 's/" "|"| +|[\[ \.-]+?(YTS\...|720p|BluRay|x264)\]?|-//ig'
rename(Dick Tracy (1990) [BluRay] [720p] [YTS.LT]/Dick.Tracy.1990.720p.BluRay.x264-[YTS.LT].mp4, Dick Tracy (1990)/Dick.Tracy.1990.mp4)
查看实用信息常用表达。