2017-04-24 75 views
-1

我有一個包含超過5000個記錄,所有重複的001字段.mrk文件。MarcEdit追加001場

我目前想到的是用記事本++,PowerShell或VBS,附加任何行的末尾開始= 001顯示行號,替換:

=001 20110708095140328

=001 2011070809514032800002

使用Notepad ++我可以找到以001開始的每一行,使用 (\n=001 .*)\r

但我不知道記事本++的正則表達式或TextFX可以與生產線的編號替換。

+0

不管我以前的評論,看起來像TextFX實現這一點。我目前正在查看法文文件,我會嘗試找到一個英文文件併發布答案。 – Aaron

+0

Welp我找不到任何東西,我現在也不能安裝TextFX來嘗試解決方案。 [Here](http://nliautaud.fr/wiki/articles/notepadpp/plugins/textfx)是我提到的法語文檔,如果向下滾動,您會注意到有一個「插入行號」功能。沒有額外的描述,所以我猜想這是一個沒有參數的操作,它會在每行的開頭插入行號。您必須使用正則表達式來1)從不以'= 001'開頭的行中刪除此行號2)將行號移動到以「= 001」開頭的行的結尾以尊重您的格式。 – Aaron

+0

爲什麼不連續替換重複的'001'?我的意思是像'001','002'等等?這可以通過編程完成。正則表達式只會幫助模式匹配和用固定字符串替換。 – Rahul

回答

0

作爲替代我提及但不能測試TextFX溶液,有一種方法來做到這一點而不與列編輯器(編輯 - >列編輯器或Alt鍵 - Ç)任何插件。

首先,選擇要插入的行號列。如果你的線固定寬度,你就可以直接將它在所需的位置,否則我在第一列建議插入。要選擇列,按Alt鍵使用列模式版本 - ,而你在你的文件的第一行所需的列,然後在最後一行的所需的列。你會看到一個0寬度的選擇跨越選定的線路上,並鍵入字母將它們寫在該列的每一行。

這裏我們不打算寫任何東西,但打開上面提到的列編輯器,並選擇插入一個從1開始的數字,遞增1.您還將要檢查「Leading zeros」複選框,以便數字是固定寬度。

如果啓動具有以下內容:

bla 
bla 
X bla 
bli 
bla 
X blu 
bli 

你這一個結束:

1bla 
2bla 
3X bla 
4bli 
5bla 
6X blu 
7bli 

此時你期望的結果可以很容易地用一個或兩個regexs獲得:

  • 您想從不以0123開頭的行中刪除行號:通過使用先行

  • 如果你的線沒有固定寬度的匹配不跟=001的行號,你必須在其開始插入的行號,並希望將其移動到結束:使用捕獲組分別匹配的行號和行的其餘部分,並通過反轉它們的順序重建的行。

0

在Notepad ++中這有點棘手。但是如果你保持耐心,值得一試。

第1步:在Notepad ++中打開文件並轉到編輯 - >列編輯器。快捷方式是Alt + C

第2步:添加以下值。如果你願意,請記得選擇Leading Zeros。按確定,你就完成了。

enter image description here