我为家用 HTPC(plex 服务器)翻录了许多 DVD。某些文件名包含不需要的字符。我想保留大部分原始文件名字符串,但删除其中不需要的文本。这里有些例子:
- 现有文件名
Apollo 18-1.mp4
,删除-1
新文件名Apollo 18.mp4
规则:在选定的目录中查找所有以“-1”结尾的文件名并消除字符串“-1” - 文件名
ENTOURAGE_DISC1.Title1.avi
, 删除.Title1
新文件名ENTOURAGE_DISC1.avi
规则:在选定的目录中查找所有以“.Title1”结尾的文件名,并消除字符串“.Title1”
答案1
使用zsh
s zmv
,从这两个示例推断出要求:
autoload zmv # best in ~/.zshrc
zmv '(*)(.Title<->|-<->).(mp4|avi)' '$1.$3'
<->
是任何十进制数字序列。 (<x-y>
不提供边界的一种形式)。如果您只想要.Title1
特定-1
的任何扩展名,您可以随时将其更改为:
zmv '(*)(.Title|-)1(.[^.]##)' '$1$3'
[^.]##
匹配一个或多个非点字符。