Notepad++ 仅保留文本文件中唯一的名称,并删除其余名称

Notepad++ 仅保留文本文件中唯一的名称,并删除其余名称,notepad++,Notepad++,我有一个文本文件中的姓名列表,如下所示: John Doe John Doe Carl Berg Roger Hansen Roger Hansen Jane Doe Lance Anderson Lance Anderson 我只想保留唯一的名称并删除其余的名称。 如何使用批处理脚本或maby Notepad++?首先,在文件末尾添加一个换行符 Ctrl+H 查找内容:^(+\R)\1+ 替换为:留空 检查环绕 检查正则表达式 不要选中。匹配换行符 全部替换 说明: ^ :

我有一个文本文件中的姓名列表,如下所示:

John Doe
John Doe
Carl Berg
Roger Hansen
Roger Hansen
Jane Doe
Lance Anderson
Lance Anderson
我只想保留唯一的名称并删除其余的名称。
如何使用批处理脚本或maby Notepad++?首先,在文件末尾添加一个换行符


  • Ctrl+H
  • 查找内容:
    ^(+\R)\1+
  • 替换为:
    留空
  • 检查环绕
  • 检查正则表达式
  • 不要选中
    。匹配换行符
  • 全部替换
说明:

^       : begining of line
(       : start group 1
  .+    : 1 or more any character but newline
  \R    : any kind of linebreak
)       : end group
\1+     : backreference to group 1, must appear 1 or more times
Carl Berg
Jane Doe
给定示例的结果:

^       : begining of line
(       : start group 1
  .+    : 1 or more any character but newline
  \R    : any kind of linebreak
)       : end group
\1+     : backreference to group 1, must appear 1 or more times
Carl Berg
Jane Doe

在记事本++中,执行查找和替换:

查找内容:

(.+)[\r\n]+(\1[\r\n]*)+
什么都不要换

确保在执行查找和替换时选择“正则表达式”,并取消选中“.matches newline”框

如果文件中存在未分组的重复行,该怎么办?
在执行查找和替换之前,请执行以下操作:编辑->行操作->按字典顺序升序对行排序

这在我能找到的任何其他帖子中都没有回答。其他帖子将TextFX和Cygwin描述为一种解决方案。我已经测试过了,但都不起作用。谢谢,但似乎没有任何作用。记事本++表示替换所有:0次发生在被替换的位置。我正在一个更大的名字列表上尝试。有160个名字,两个和三个名字。@user2427836:Npp的哪个版本,这里我使用7.5.1?姓名**是否真的**相同(即firstname和lastname之间的空格数相同)?所有行都以相同的空格结尾吗?你读过问题了吗?他们想保留唯一的名称,而不是删除dup。@谢谢,我误解了。我已经更新了我的答案。