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。@谢谢,我误解了。我已经更新了我的答案。