1
yfugibr 2022-06-03 10:21:27 +08:00 via Android 1
rename 直接用正则就行
rename -v 's/.*(\d+).*/VCB-Studio] Zetsuen no Tempest [${1}][Ma10p_1080p][x265_flac_aac].mkv.ass/' *.ass |
2
iamzuoxinyu 2022-06-03 11:02:53 +08:00 via Android
我一直用的 powertoys 里的批量重命名,贼好用。
|
3
bipy 2022-06-03 11:57:09 +08:00
|
4
huntagain2008 OP @bipy 看了 c#的源码也是截取字符串
var fileName = MovieFileName.Substring(0, MovieFileName.LastIndexOf(".", StringComparison.Ordinal)); |
5
zh4710jj 2022-06-03 13:01:18 +08:00
perl-rename
|
6
butanediol2d 2022-06-03 13:04:14 +08:00
rename 正则 +1
|
7
huntagain2008 OP @iamzuoxinyu #2 powertoys 不写正则表达式能改名吗?若需要正则,那用#1 的替换还快些。
|
8
qwqaq 2022-06-03 14:02:06 +08:00 1
😉 可以来试试我写的这个: https://github.com/qwqcode/SubRenamer
|
9
imn1 2022-06-03 14:27:14 +08:00 1
这些有连续序号的,重命名不是难事,例如有些改名工具有导入功能,把视频文件清单导入,保留扩展名重命名就可以了
另外,很多播放器都有字幕文件夹自动加载字幕的功能,甚至不用改名,全扔进去,看的时候选一下就行 |
10
iamzuoxinyu 2022-06-03 14:38:33 +08:00
@huntagain2008 这种复杂的名字怎么着也得用正则吧。powertoys 也会记录历史,我自己是维护了一个巨长的正则去掉各种字幕组名字和编码格式这些 tag 。
|
11
CrazyRundong 2022-06-03 15:29:34 +08:00
前几天也在 nas 上写了个类似的脚本,稍微处理了下不同季和不同字幕组 /压制组间的字幕匹配:
```bash #!/bin/bash set -e mkv_dir=${1:-"$PWD"} sub_dir=${2:-"$PWD/权力的游戏.S03"} season="03" for ((ep = 1; ep <= 10; ep++)); do mkv_path=$(find "${mkv_dir}" -regex ".*S${season}E$( printf '%02d' ${ep} ).*\.mkv$" ! -regex '.*\@eaDir.*' ! -iname '._*') mkv_name=$(basename "${mkv_path}" '.mkv') mkv_dir=$(dirname "${mkv_path}") ass_path=$(find "${sub_dir}" -regex ".*S${season}E$( printf '%02d' ${ep} ).*\.ass$" ! -regex '.*\@eaDir.*' ! -iname '._*') ass_name=$(basename "${ass_path}" '.ass') ass_dir=$(dirname "${ass_path}") ass_new_path="${mkv_dir}/${mkv_name}.chs-eng.ass" ass_path_normalized=$(realpath "$ass_path") ass_new_path_normalized=$(realpath "$ass_new_path") printf 'EP%02d: %s\t==>\t%s\n' $ep "$ass_path_normalized" "$ass_new_path_normalized" cp "$ass_path_normalized" "$ass_new_path_normalized" done ``` |
12
huntagain2008 OP #1 用的 rename 需要安装。 ${1}只能取到 0-9 ,需要的是 01-24
小白把脚本改了一下,试了下是对的 rename -v 's/.*(\d\d).*/[VCB-Studio] Zetsuen no Tempest [${1}${2}][Ma10p_1080p][x265_flac_aac].ass/' *.ass @yfugibr |
13
JackieMe 2022-06-03 23:59:30 +08:00 via Android
看来这个需求的人也不少啊,之前写 Bash 写烦了发现要处理的情况一多就不知道怎么写,后来直接用了 Python 。
|
14
Zinzin 2022-06-04 02:57:58 +08:00 via Android
我一般用 advanced rename
|
15
AX5N 2022-06-04 06:59:33 +08:00
我以前写过个类似的,还收集过一大堆案例,写得挺复杂的。
|
16
huntagain2008 OP #8 感谢。看到第四集才发现视频文件名有的是[x265_flac_aac].mkv 有的是[x265_flac].mkv ,格式根本不统一,只能用你这类视频文件和字幕文件全部导入,自动匹配,一键改名。还带字幕备份,操作日志
@qwqaq |
17
yfugibr 2022-06-04 12:55:10 +08:00
|
18
huntagain2008 OP rename 对小白来说太难了。FFRenamePro.exe 菲菲更名宝贝 适合我这种小白用户。
|