Answers:
如果您想按行排序,并且同时删除重复的行,则记事本++可以执行此操作。
您将需要TextFX插件。以前曾经包含在Notepad ++的较早版本中,但是如果您有较新的版本,则可以从菜单中转到来添加它Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
。在某些情况下,它也可以称为TextFX Characters
,但这是同一回事
现在,所需的复选框和按钮将显示在菜单下:TextFX -> TextFX Tools
。
确保选中“仅将输出排序为唯一...”。接下来,选择一个文本块(Ctrl+ A选择整个文档)。最后,点击“区分大小写的行”或“区分大小写的行”
从Notepad ++版本6开始,您可以在搜索和替换对话框中使用此正则表达式:
^(.*?)$\s+?^(?=.*^\1$)
并一无所获。这将使所有重复的行中文件中的最后一次出现。
无需排序,重复的行可以在文件中的任何位置!
您需要检查选项“正则表达式”和“。匹配换行符”:
^
匹配行的开头。
(.*?)
匹配任何字符0次或多次,但尽可能少(它与行完全匹配,这是必需的,因为“ .matches newline”选项是必需的)。之所以存储匹配的行,是因为方括号括起来并且可以使用\1
$
匹配行尾。
\s+?^
这部分匹配所有空格字符(换行符!),直到下一行的开始==>这将删除匹配行之后的换行符,以便替换后没有空行。
(?=.*^\1$)
这是一个积极的提前断言。这是此正则表达式中的重要部分,当文件中其他位置后面紧跟同一行时,仅匹配(并删除)一行。
. matches newline
就可以了。
如果各行紧接,则可以使用正则表达式替换:
搜索模式: ^(.*\r?\n)(\1)+
用。。。来代替: \1
^(.*\r?\n)(\1)+
如果您不关心行顺序(我不认为这样做),则可以使用Linux / FreeBSD / Mac OS X / Cygwin框并执行以下操作:
$ cat yourfile | sort | uniq > yourfile_nodups
然后在Notepad ++中再次打开文件。
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
后来的Notepad ++版本显然根本不包含TextFX插件。为了使用该插件对重复项进行排序/消除,必须下载并安装该插件(涉及更多),或者使用插件管理器添加该插件。
A)简单的方法(如描述在这里)。
插件->插件管理器->显示插件管理器->可用选项卡-> TextFX字符->安装
B)如果需要其他版本或简单方法不起作用,则采用更多的参与方式。
从SourceForge下载插件:
打开压缩文件并解压缩NppTextFX.dll
将NppTextFX.dll放在Notepad ++插件目录中,例如:
C:\ Program Files \ Notepad ++ \ plugins
启动Notepad ++,TextFX将成为文件菜单项之一(如上述Colin Pickard的答案#1所示)
安装TextFX插件后,请按照答案1中的说明进行排序并删除重复项。
另外,如果您经常使用此命令或想复制键盘快捷键(例如TextPad中的F9)进行排序,请考虑使用“设置”>“ Shorcut映射器”来设置键盘快捷键。
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
。除此之外,它仍然可以正常工作。
搜索正则表达式: \b(\w+)\b([\w\W]*)\b\1\b
替换为: $1$2
点击替换按钮,直到文件中的正则表达式不再匹配。
没有人为我工作。
一个解决方案是:
更换
^(.*)\s+(\r?\n\1\s+)+$
与
\1
^(.*)\s+(\r?\n\1\s+)+$
和不^(.*)\s*(\r?\n\1\s*)+$
?
对于Notepad ++,插件管理器当前不可用(不随发行版提供)。您必须手动安装(https://github.com/bruderstein/nppPluginManager/releases),即使这样做,很多插件也不再可用(没有TextFX)。
也许还有另一个包含所需功能的插件。除此之外,在Notepad ++中执行此操作的唯一方法是使用一些特殊的正则表达式进行匹配,然后替换(Ctrl+ F→ 替换选项卡)。
尽管可以通过“ 编辑”菜单项提供许多功能(修剪,删除空行,排序,转换EOL),但是没有“唯一”操作可用。
如果您使用Windows 10,则可以启用Bash(只需在Microsoft Store中键入Ubuntu,然后按照说明中的说明进行安装即可)并使用cat your_file.txt | sort | uniq > your_file_edited.txt
。当然,您必须与“ your_file.txt”位于同一工作目录中,或通过其路径进行引用。