1.使用什么命令来删除扩展名前的最后‘n’个字符?
13354443_Walkinthepark-ASGDFSGDG.mkv 至 13354443_Walkinthepark.mkv
- 如何删除扩展名前的头‘n’个字符?
13354443_Walkinthepark-ASGDFSGDG.mkv 至 Walkinthepark-ASGDFSGDG.mkv
- 此外,还有执行两者的命令。
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