在记事本++中删除重复的行
是否有可能在Notepad ++中删除重复的行,只留下一个单行的行?
Notepad ++可以做到这一点,只要你想按行sorting,并同时删除重复的行。
您将需要TextFX插件。 以前版本中包含Notepad ++的旧版本,但是如果你有更新的版本,可以通过Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
从菜单中添加它。 在某些情况下,它也可能被称为TextFX Characters
,但这是同样的事情
所需的checkbox和button现在将显示在TextFX -> TextFX Tools
下的菜单中。
确保“sorting输出唯一…”被选中。 接下来,select一个文本块( Ctrl + A来select整个文档)。 最后,点击“sorting行区分大小写”或“sorting行不区分大小写”
由于Notepad ++版本6,你可以在search和replace对话框中使用这个正则expression式:
^(.*?)$\s+?^(?=.*^\1$)
并没有取代 。 这将从所有重复的行中留下文件中的最后一个事件。
不需要sorting,重复的行可以在文件中的任何地方!
你需要检查选项“正则expression式”和“。matches newline”:
-
^
匹配行的开始。 -
(.*?)
匹配任何字符0次或更多次,但尽可能less(匹配行上,这是因为“。匹配换行”选项需要)。 匹配的行被存储,因为括号括起来并且可以使用\1
访问 -
$
匹配行的结尾。 -
\s+?^
这部分匹配所有的空格字符(换行!),直到下一行的开始==>这将删除匹配行之后的换行符,以便在replace后没有空行。 -
(?=.*^\1$)
这是一个积极的前瞻断言。 这是这个正则expression式中的重要组成部分,只有在文件中其他位置有完全相同的行时才匹配(和移除)一行。
如果行是紧跟在一起,那么你可以使用正则expression式replace
search模式: ^(.*\r?\n)(\1)+
replace为: \1
如果你不关心行顺序(我认为你不这样做),那么你可以使用Linux / FreeBSD / MacOSX / Cygwin框,并执行:
$ cat yourfile | sort | uniq > yourfile_nodups
然后再用Notepad ++打开文件。
记事本++的后者版本根本不包括TextFX插件。 为了使用插件来sorting/消除重复,插件必须下载并安装(更多参与)或使用插件pipe理器添加。
A)简单的方法(如此处所述)。
插件 – >插件pipe理器 – >显示插件pipe理器 – >可用选项卡 – > TextFX字符 – >安装
B)更多的参与方式,如果需要另一个版本或简单的方法不起作用。
-
从SourceForge下载插件:
project/npp-plugins/TextFX/TextFX v0.26/TextFX.v0.26.unicode.bin.html
-
打开zip文件并提取NppTextFX.dll
-
将NppTextFX.dll放在Notepad ++插件目录中,例如:
C:\ Program Files \ Notepad ++ \ plugins -
启动Notepad ++,TextFX将成为文件菜单项之一(如Colin Pickard在上面的答案#1中所见)
安装TextFX插件后,请按照答案#1中的说明进行分类和删除重复项。
此外,如果您经常使用此命令,或者想要复制键盘快捷键(例如TextPad中的F9)进行sorting,请考虑使用设置> Shorcut映射器设置键盘快捷键。
记事本+ +
– >replace窗口
确保在search模式下
你已经select了正则expression式单选button
找什么:
^(。*)(\ r吗?\ n \ 1)+ $
用。。。来代替:
$ 1
之前:
我们在那里思考
我们在那里思考
单线
是否有可能
是否有可能
后:
我们在那里思考
单线
是否有可能
search正则expression式: \ b(\ w +)\ b([\ w \ W] *)\ b \ 1 \ b
将其replace为: $ 1 $ 2
点击replacebutton,直到文件中没有更多匹配的正则expression式。
没有为我工作。
解决scheme是:
更换
^(。*)\ S +(\ r吗?\ n \ 1 \ S +)+ $
同
\ 1
资料来源: http : //sortedinf.com/?q=remove-duplicate-rows-in-notepad-plus-plus