我有一张超过10000张的卡拉OK文件列表,我需要修剪。
我看着VIM,脑袋受伤了,我被告知尝试使用Notepad ++,我正在努力寻找和替换功能。
以下是我的清单
的示例D:\Karaoke\karaoke\Backstage\8017\Queen - 17 - Hammer To Fall.cdg D:\Karaoke\karaoke\Backstage\8317\Alabama - 15 - Tennessee River.cdg D:\Karaoke\karaoke\Backstage\8717\Bee Gee's - 10 - You Should Be Dancing.cdg D:\Karaoke\karaoke\Backstage\9117\Billy Joel - 01 - Piano Man.cdg D:\Karaoke\karaoke\Backstage\9917\Reba McEntire - 08 - Somebody Should Leave.cdg D:\Karaoke\karaoke\BrightSpark\BRSP03\Brsp003-18 - Locklin, Hank - Send Me The Pillow You Dream On.cdg D:\Karaoke\karaoke\CHART HITS MONTHLY\Chm0002\CHM0002-19 - Diffie, Joe - Quittin' Kind, The.zip D:\Karaoke\karaoke\CHARTBUSTERS\90198\CB90198-01 - Lewis, Huey & The News - Heart Of Rock 'N' Roll.zip D:\Karaoke\karaoke\SFMW905\SFMW905-07 - Adventures Of Stevie V - Dirty Cash.cdg D:\Karaoke\karaoke\UNSORTED 2\Karaoke I and J\JD Myers - When I Think About You.cdg D:\Karaoke\karaoke\UNSORTED 3\Pocket Songs\PS-1299 Bobby Darin\PS1299-16 - Darin, Bobby - Mack The Knife.cdg D:\Karaoke\karaoke\ZOOM TT TH\TOP TUNES\Elvis\Tu169-14 - Hound Dog - Presley, Elvis.cdg
我想知道如何找到最后一个' \'从每一行删除它。
所以他们会像这样展示
Queen - 17 - Hammer To Fall.cdg
Alabama - 15 - Tennessee River.cdg
Billy Joel - 01 - Piano Man.cdg
JD Myers - When I Think About You.cdg
...
很容易将.cdg扩展名关闭。有什么建议吗?
答案 0 :(得分:3)
纯Vim正则表达式可能看起来有所不同,具体取决于magic
设置,但启用magic
(默认值)时,删除所有内容(包括最后一个斜杠)的命令将为
:%s/.*\\//
%
是覆盖整个缓冲区的范围,s/<replace_this>/<by_this>/
是替换命令,.*\\
是后跟反斜杠的任何字符(反斜杠应该被另一个反斜杠转义)。因为默认情况下正则表达式是贪婪的,.*\\
将匹配所有字符,直到最后一个反斜杠,而不是第一个。
虽然Vim有自己的正则表达式语法,但我总是倾向于使用Perl来表示总是看起来相同的正则表达式。如果您的Vim使用+perl
进行编译,则可以执行
:%perldo s/.*\\//g
或者只是从命令行运行perl -npe 's/.*\\//g' original_file > result_file
。
答案 1 :(得分:0)
记事本++解决方案:
查找
.*\\([^\\]*)(\.cdg|\.zip)
替换为:
$1