2015-11-19 69 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

是的,它工作的一種享受。謝謝 –

相關問題