谁能推荐一个好的解决方案来递归删除文件名中不需要的字母 删除
.720p.BluRay.x264-[YTS.AM]
例如:
Yellow Submarine (1968) [BluRay] [720p] [YTS.AM]
│ ├── www.YTS.AM.jpg
│ └── Yellow.Submarine.1968.720p.BluRay.x264-[YTS.AM].mp4
├── You Might Be The Killer (2018) [BluRay] [720p] [YTS.AM]
│ ├── www.YTS.AM.jpg
│ └── You.Might.Be.The.Killer.2018.720p.BluRay.x264-[YTS.AM].mp4
├── Your Name (2016) [BluRay] [720p] [YTS.AM]
│ ├── www.YTS.AM.jpg
│ └── Your.Name.2016.720p.BluRay.x264-[YTS.AM].mp4
成为:
Yellow Submarine (1968) [BluRay] [720p] [YTS.AM]
│ ├── www.YTS.AM.jpg
│ └── Yellow.Submarine.1968.mp4
├── You Might Be The Killer (2018) [BluRay] [720p] [YTS.AM]
│ ├── www.YTS.AM.jpg
│ └── You.Might.Be.The.Killer.2018.mp4
├── Your Name (2016) [BluRay] [720p] [YTS.AM]
│ ├── www.YTS.AM.jpg
│ └── Your.Name.2016.mp4
答案 0 :(得分:1)
由于每个文件中删除的字符串似乎相同,因此可以使用find
和rename
来解决此问题:
find . -type f -exec rename 's/\.720p\.BluRay\.x264\-\[YTS\.AM\]//' '{}' \;
在包含这些文件夹的基本目录中运行该文件,它应该清理文件。
要首先进行测试,您可以在该重命名命令上使用-n
标志,以查看如果允许它执行操作(不使用-n
标志)将执行的操作:
find . -type f -exec rename -n 's/\.720p\.BluRay\.x264\-\[YTS\.AM\]//' '{}' \;