1
privil 2017-06-16 00:58:39 +08:00
或者的那个比较简单,文件名切分 awk 处理出来新文件名,然后 mv 一下就好了
想了下,几行搞定了 |
2
AX5N 2017-06-16 01:02:18 +08:00
有现成带 gui 的工具,为什么一定要用脚本呢.....
|
3
ETiV 2017-06-16 01:19:45 +08:00 1
for n in *.mkv; do e=$(echo $n | awk -F. '{print $1}'); d=$(printf "The Big Bang Theory - %s.mkv" $e); mv "$n" "$d"; done
|
5
geelaw 2017-06-16 01:54:39 +08:00
```powershell
$regex = [regex]::new('^(.*?)\.(.*)\.(.*?)$') Get-ChildItem | ForEach-Object { $match = $regex.Match($_.Name); $_ | Rename-Item -NewName "The Big Bang Theory - $($match.Groups[1].Value) - $($match.Groups[2].Value.Replace('.', ' ')).$($match.Groups[3].Value)" } ``` |
6
popkara 2017-06-16 01:55:57 +08:00
@kaminic 为什么工具一定要跑在服务器里呢?开个 SMB,在 PC 上改名不久行了?速度虽然慢点,但是我想你也没有那么多文件吧?
|
8
AX5N 2017-06-16 02:47:41 +08:00
@kaminic 说真的,我觉得普通脚本语言解决不了这个问题,因为这个问题最大的坑在于排序问题,万一脚本是个二逼排序,你的东西就全乱了。你不用 gui,很多坑可能你预计不到。
|
9
AX5N 2017-06-16 02:49:24 +08:00
@kaminic 推荐你用 gui 最大的好处就是能避免出现排序问题,例如你下载的电视剧种子里,同时存在 v1 版本和 v2 版本怎么办?
|
10
PythonAnswer 2017-06-16 06:59:40 +08:00 via Android
totalcmd 自带此功能吧
或者自己写个正则 |
11
schezukNewTos 2017-06-16 08:01:05 +08:00
rename Perl 版本支持正则,但是会**覆盖同名目标文件**,即使没有加-f 参数。下例将输出 1:
```echo 1 > test1 ; echo 2 > test2 ; rename s/test1/test2/ test1 ; cat test2``` |
12
araraloren 2017-06-16 09:26:48 +08:00 1
看你的需求只能需要用正则匹配出来 替换就行了。。
``` #!/usr/bin/perl6 sub MAIN(*@files) { for @files -> $_ is copy { my $sn = $_; s/^ (S\d+E\d+) \. ([ <-[\.]>+ ]+ % \.) \. (.*) $/$0 - {$_ = $1; tr/\./ /; $_}.$2/; my $status = rename($sn, $_); say "rename \[$status\]: {$sn} => {$_}"; } } ``` 以下是效果,你的 The Big Bang Theory 我没加,不知道这是不是符合你的要求。。 $ ./rename.p6 *.ass *.mkv rename [True]: S01E01.Pilot.ass => S01E01 - Pilot.ass rename [True]: S01E02.The.Big.Bran.Hypothesis.ass => S01E02 - The Big Bran Hypothesis.ass rename [True]: S01E03.The.Fuzzy.Boots.Corollary.ass => S01E03 - The Fuzzy Boots Corollary.ass rename [True]: S01E04.The.Luminous.Fish.Effect.ass => S01E04 - The Luminous Fish Effect.ass rename [True]: S01E05.The.Hamburger.Postulate.ass => S01E05 - The Hamburger Postulate.ass rename [True]: S01E01.Pilot.mkv => S01E01 - Pilot.mkv rename [True]: S01E02.The.Big.Bran.Hypothesis.mkv => S01E02 - The Big Bran Hypothesis.mkv rename [True]: S01E03.The.Fuzzy.Boots.Corollary.mkv => S01E03 - The Fuzzy Boots Corollary.mkv rename [True]: S01E04.The.Luminous.Fish.Effect.mkv => S01E04 - The Luminous Fish Effect.mkv rename [True]: S01E05.The.Hamburger.Postulate.mkv => S01E05 - The Hamburger Postulate.mkv |
13
loryyang 2017-06-16 13:53:46 +08:00
提个醒,不要因为 bug,导致目标文件都变成一样的。。。到时候欲哭无泪
|
15
uuspider 2017-06-16 18:08:12 +08:00
上古神器 awk 就是为此而生啊
|
16
flynaj 2017-06-22 20:49:07 +08:00
文件少最简单还是 totalcmd
|