如何消除文件名中的特定字符串?

如何消除文件名中的特定字符串?

我为家用 HTPC(plex 服务器)翻录了许多 DVD。某些文件名包含不需要的字符。我想保留大部分原始文件名字符串,但删除其中不需要的文本。这里有些例子:

  • 现有文件名Apollo 18-1.mp4,删除-1新文件名Apollo 18.mp4规则:在选定的目录中查找所有以“-1”结尾的文件名并消除字符串“-1”
  • 文件名ENTOURAGE_DISC1.Title1.avi, 删除.Title1新文件名ENTOURAGE_DISC1.avi规则:在选定的目录中查找所有以“.Title1”结尾的文件名,并消除字符串“.Title1”

答案1

使用zshs zmv,从这两个示例推断出要求:

autoload zmv # best in ~/.zshrc
zmv '(*)(.Title<->|-<->).(mp4|avi)' '$1.$3'

<->是任何十进制数字序列。 (<x-y>不提供边界的一种形式)。如果您只想要.Title1特定-1的任何扩展名,您可以随时将其更改为:

zmv '(*)(.Title|-)1(.[^.]##)' '$1$3'

[^.]##匹配一个或多个非点字符。

相关内容