![]() | 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 ![]() 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 ![]() 看你的需求只能需要用正则匹配出来 替换就行了。。 ``` #!/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 |