2015-11-19 84 views
0

我已经获得了10000多个我需要修剪的卡拉OK文件列表。找到一个字符并删除每行之前的所有内容

我看着VIM和我的头受伤,有人告诉我尝试记事本+ +和我努力与搜索和替换功能。

这里是我的名单的样本

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 

我想一些来自各行找到最后“\”并删除它。

所以他们会表现出这样的

​​

它容易得到.cdg拓客。有什么建议么?

回答

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

+0

你知道如何做到这一点的任何基本教程...我安装VIM,挣扎着要进它。用Notepad ++了解一下吗? –

+0

关于Vim或正则表达式的教程?对于Vim,有vimtutor - 只需在命令行键入'vimtutor'并继续。我不能为正则表达式推荐任何教程 - 当我在阅读O'Reilly的书“学习Perl”时,我学到了它们。 – Paul

0

记事本+解决方案:

查找

.*\\([^\\]*)(\.cdg|\.zip) 

替换为:

$1 
+0

http://prntscr.com/95c5z4它不会让我搜索表达式 –

+0

@VincentValentine您是否在查找并替换为正则表达式时设置了“搜索模式”设置? –

+0

是的,它工作的一种享受。谢谢 –

相关问题