MarcEdit 附加 001 字段
MarcEdit append 001 field
我有一个包含 5,000 多条记录的 .mrk 文件,所有记录都有重复的 001 字段。
我目前的想法是使用 Notepad++、PowerShell 或 VBS,在以 =001 开头的任何行的末尾附加行号,替换:
=001 20110708095140328
和
=001 2011070809514032800002
使用 Notepad++ 我能够找到以 =001 开头的每一行,使用
(\n=001 .*)\r
但是我不知道Notepad++的Regex或者TextFX是否可以替换为行号
作为我提到但无法测试的 TextFX 解决方案的替代方案,有一种方法可以在没有任何插件的情况下使用列编辑器(编辑->列编辑器或 Alt -C).
首先,select你要插入行号的列。如果你的行是固定宽度的,你就可以直接插入到想要的位置,否则我建议插入第一栏。要 select 列,请在第一行的所需列上按 Alt-Shift 使用列模式编辑您的文件,然后单击最后一行的所需列。您将在 selected 行上看到 0 宽度的 selection,键入字母会将它们写入此列的每一行。
这里我们不打算自己写任何东西,而是打开上面提到的列编辑器并选择插入一个从 1 开始的数字,以 1 递增。您还需要选中 "Leading zeros" 复选框这样数字就固定宽度了。
如果您从以下内容开始:
bla
bla
X bla
bli
bla
X blu
bli
你会得到这个:
1bla
2bla
3X bla
4bli
5bla
6X blu
7bli
此时你想要的结果可以通过一两个正则表达式轻松获得:
您想从不以 =001
开头的行中删除行号:使用先行 [=14] 匹配不后跟 =001
的行号=]
如果你的行不是固定宽度的,你必须在它们的开头插入行号,并想将它移到末尾:使用捕获组分别匹配行号和行的其余部分,并通过反转它们的顺序来重建行。
这在 Notepad++ 中有点棘手。但如果你保持耐心,那值得一试。
第 1 步: 在 Notepad++ 中打开文件并转到 编辑 -> 列编辑器。快捷键是 Alt + C.
步骤 2: 添加以下值。如果需要,请记住 select Leading Zeros
。按 确定 完成。
我有一个包含 5,000 多条记录的 .mrk 文件,所有记录都有重复的 001 字段。
我目前的想法是使用 Notepad++、PowerShell 或 VBS,在以 =001 开头的任何行的末尾附加行号,替换:
=001 20110708095140328
和
=001 2011070809514032800002
使用 Notepad++ 我能够找到以 =001 开头的每一行,使用
(\n=001 .*)\r
但是我不知道Notepad++的Regex或者TextFX是否可以替换为行号
作为我提到但无法测试的 TextFX 解决方案的替代方案,有一种方法可以在没有任何插件的情况下使用列编辑器(编辑->列编辑器或 Alt -C).
首先,select你要插入行号的列。如果你的行是固定宽度的,你就可以直接插入到想要的位置,否则我建议插入第一栏。要 select 列,请在第一行的所需列上按 Alt-Shift 使用列模式编辑您的文件,然后单击最后一行的所需列。您将在 selected 行上看到 0 宽度的 selection,键入字母会将它们写入此列的每一行。
这里我们不打算自己写任何东西,而是打开上面提到的列编辑器并选择插入一个从 1 开始的数字,以 1 递增。您还需要选中 "Leading zeros" 复选框这样数字就固定宽度了。
如果您从以下内容开始:
bla
bla
X bla
bli
bla
X blu
bli
你会得到这个:
1bla
2bla
3X bla
4bli
5bla
6X blu
7bli
此时你想要的结果可以通过一两个正则表达式轻松获得:
您想从不以
=001
开头的行中删除行号:使用先行 [=14] 匹配不后跟=001
的行号=]如果你的行不是固定宽度的,你必须在它们的开头插入行号,并想将它移到末尾:使用捕获组分别匹配行号和行的其余部分,并通过反转它们的顺序来重建行。
这在 Notepad++ 中有点棘手。但如果你保持耐心,那值得一试。
第 1 步: 在 Notepad++ 中打开文件并转到 编辑 -> 列编辑器。快捷键是 Alt + C.
步骤 2: 添加以下值。如果需要,请记住 select Leading Zeros
。按 确定 完成。