我有一个包含5,000多条记录的.mrk文件,所有记录都包含重复的001字段。
我目前的想法是使用Notepad ++,PowerShell或VBS来追加以@ 001开头的任何行的末尾及其行号,替换为:
=001 20110708095140328
带
=001 2011070809514032800002
使用Notepad ++我能够找到以= 001开头的每一行,使用
(\n=001 .*)\r
但我不知道Notepad ++的正则表达式或TextFX是否可以替换为行号。
答案 0 :(得分:0)
作为我提到但无法测试的TextFX解决方案的替代方法,有一种方法可以在没有任何插件的情况下使用列编辑器(编辑 - >列编辑器或 Alt - ç)。
首先,选择要插入行号的列。如果您的行是固定宽度,您可以直接将其插入所需位置,否则我建议插入第一列。要选择列,请在文件第一行的所需列上按 Alt - Shift 时使用列模式版本,然后单击所需的列最后一行。您将看到所选行上的0宽度选择,并且键入字母会在此列的每一行上写入它们。
这里我们不打算自己写任何东西,但是打开上面提到的列编辑器并选择从1开始插入一个数字,递增1.您还需要检查"前导零和" #34;复选框,以便数字是固定宽度。
如果您从以下内容开始:
bla
bla
X bla
bli
bla
X blu
bli
你最终得到这个:
1bla
2bla
3X bla
4bli
5bla
6X blu
7bli
此时,您可以使用一个或两个正则表达式轻松获得所需的结果:
您要从不以=001
开头的行中删除行号:使用前瞻
=001
的行号< / LI>
如果您的行没有固定宽度,则必须在行首处插入行号,并希望将其移至结尾:使用捕获组分别匹配行号和其余行号该行,并通过反转它们的顺序重建该行。
答案 1 :(得分:0)