我如何才能删除文件中不同行项目上多次包含名字和姓氏的行项目?

我如何才能删除文件中不同行项目上多次包含名字和姓氏的行项目?

62705300019623531 0000009200AR000000027283 希尔,克莱
62705300019623531 0000009200AR000000046485 希尔,克莱
62705300019623531 0000009200AR000000027787 希尔,多丽丝 M

就像我发布的文件一样,我有一个巨大的文件,其中包含不同的重复名称,例如,我想删除 Hill Clay 的第二个行项目,即使其他数字不重复,我只需要第一个记录(行项目)并删除包含相同名字和姓氏的行。在 Excel 中,我可以突出显示列并删除重复项,但它对我来说不起作用,即使我使用标记全部或 RegRex 位置?也许我使用了错误的路径或公式?请指教!

答案1

这不是编辑器的任务,尽管它可以通过 np++(python)脚本来完成。

我宁愿建议使用 awk 解释器(您可以下载原生 Windows 可执行文件):

创建 script.awk,内容如下:

{ name=gensub(/^[0-9A-Z]+ [0-9A-Z]+ /, "", 1) }

$1 == oldnum && name==oldname {next}

{ print $0, oldnum=$1; oldname=name}

然后运行

awk -f script.awk yourfile.txt > output.txt

让我们看看如何在 np++ 中使用 Python 脚本来实现这一点。假设安装了 Python 脚本插件和 Python 解释器,您可以通过选择插件->Python 脚本->新脚本(必须保留标识级别)来编写此代码:

from Npp import *

content = editor.getText()
newcontent = ""

oldnum=""
oldname=""
for line in content.splitlines():
    fields = line.split( None, 2)
    if fields[0] != oldnum or fields[2] != oldname:
        newcontent += line + "\n"
        oldnum = fields[0]
        oldname = fields[2]

editor.clearAll()       
editor.appendText( newcontent)

只需将其命名为去重

将您的数据文件加载到选项卡中,然后在该选项卡中选择插件->Python 脚本->脚本->dedup ...,现在应该没问题了。

相关内容