使用重命名程序删除文件扩展名前的最后一个字符

使用重命名程序删除文件扩展名前的最后一个字符

1.使用什么命令来删除扩展名前的最后‘n’个字符?

13354443_Walkinthepark-ASGDFSGDG.mkv 至 13354443_Walkinthepark.mkv

  1. 如何删除扩展名前的头‘n’个字符?

13354443_Walkinthepark-ASGDFSGDG.mkv 至 Walkinthepark-ASGDFSGDG.mkv

  1. 此外,还有执行两者的命令。

13354443_Walkinthepark-ASGDFSGDG.mkv 至 Walkinthepark.mkv

我想对多个文件执行此操作。如果可能的话,对子文件夹中的其他文件执行此操作。

答案1

mmv对于这种类型的转换很有用。

$ mmv -n '*_*-*.mkv' '#1_#2.mkv'
13354443_Walkinthepark-ASGDFSGDG.mkv -> 13354443_Walkinthepark.mkv

或者

$ mmv -n '*_*-*.mkv' '#2.mkv'
13354443_Walkinthepark-ASGDFSGDG.mkv -> Walkinthepark.mkv

要使用基于 Perl 的命令做类似的事情rename

$ rename -n 's/^(.*?)_(.*?)-(.*?)\.(.*)$/$1_$2.$4/' *.mkv
rename(13354443_Walkinthepark-ASGDFSGDG.mkv, 13354443_Walkinthepark.mkv)

或者您可以使用基本的 shell 处理:

$ for f in *_*-*.mkv; do echo mv "$f" "${f%-*}.mkv"; done
mv 13354443_Walkinthepark-ASGDFSGDG.mkv 13354443_Walkinthepark.mkv

相关内容