如何使用 notepad++ 和 emeditor 将文本中的行从 0-9 az 排序为所有随机行

如何使用 notepad++ 和 emeditor 将文本中的行从 0-9 az 排序为所有随机行

如何对大型文本文件中的行进行随机排序。

我正在使用 Emeditor Notepad++

如果有正则表达式的方法,也请添加它

示例行的一小部分:

0
1
3
4
5
6
7
8
9
10
A
a
B
b
C
c
D
d
E
e

需要结果:

E
8
e
5
a
c
9
B
1
0
b
7
3
4
A
d
C
D
10
6

答案1


总结

作为Notepad++ v7.9,Notepad++ 有一个功能叫随机化线路顺序其作用与下面给出的答案相同(即,随机化给定文档或选择中的行顺序)。

可以使用编辑 → 线操作 → 随机化线序


原始答案

据我所知,这两个程序都没有原生的行随机化功能(更不用说使用正则表达式的程序了)。但是,两者都有可能通过插件支持这种功能。

不幸的是,我找不到任何针对 EmEditor 的预制解决方案,但有一个名为 Notepad++ 插件Python 脚本它支持另一个外部脚本,可以在 Notepad++ 内部对行进行基本随机化。

关于“大”文件标准,Notepad++ 可能会在处理较大的文件时出现问题(尽管打开大约 500MB 的文件肯定没有问题)。如果您确实遇到任何错误,您可能需要将文件拆分成较小的块。

Python 脚本插件和 RandomizeLines.py

首先,下载并安装Python 脚本通过 Notepad++ 插件管理器插件:

例如在 Notepad++ 插件管理器中安装 Python 脚本插件

Notepad++ 中插件管理器的屏幕截图,显示了按字母顺序排列的插件选项列表。插件条目左侧有一个复选框,上面只写着 Python 脚本。列表下方是一个滚动文本框,显示有关该插件的一般信息。在其下方,管理器对话框窗口的右下角有一个安装按钮。此按钮将开始下载和安装任何标记的插件条目。

插件安装完成后,您需要重新启动 Notepad++。重新启动后,插件应出现在插件Python 脚本

下一个,从 Github 下载这个基于 Python 的“npp-randomizelines”脚本克隆或下载下载 ZIP)提取文件并选择随机化线.py文件:

例如 RandomizeLines Master-已提取

提取的文件存档的屏幕截图,名为 NPP RandomizeLines Master,包含两个文件项。第一个文件项名为 RandomizeLines.py,在 Windows 文件管理器中突出显示以供选择。

复制随机化线.py你的记事本++插件Python 脚本脚本文件夹。根据您的 Notepad++ 安装,该文件夹可能与显示的位置不同。

例如 RandomizeLines - Notepad++ 插件文件夹

屏幕截图显示了 RandomizeLines Python 脚本可能位于的位置示例。Windows 文件管理器中显示的完整路径为 C、ProgramFiles X 86、Notepad++、插件、PythonScript、脚本。RandomizeLines.py Python 文件在此文件夹中突出显示。

重新启动 Notepad++,你现在应该有一个插件Python 脚本脚本随机化线条选项。

例如运行 RandomizeLines 脚本

屏幕截图显示了用于运行 RandomizeLines Python 脚本的 Notepad++ 菜单树。显示的树是主 Notepad++ 工具栏菜单,标题为“插件”,子菜单标题为“Python 脚本”,第二个子菜单标题为“脚本”,最后是第三个子菜单,其中包含用于运行该脚本的标题为“RandomizeLines”的条目。

根据您的原始输入,运行脚本后我得到以下结果:

例如部分脚本结果

 B
 a
 c
 b
 4
 A

笔记

  • 运行时,如果未选择任何行,它将随机化当前打开的文件的所有行。如果突出显示个别行,它将仅随机化这些行。

  • 我还没玩过Python 脚本插件本身,但您可以使用 Python 的原生正则表达式模块来扩展脚本。关于语法,该插件显然使用了 Python 2.7 的 .dll 版本。

  • 如果你想要一个类似的 EmEditor 脚本/插件,你可能需要用 C++ 自己编写代码。这似乎不是一个困难的任务(至少对于任何熟悉 C++ 和简单 Windows 编码的人来说都是如此),但它可能比向上面提到的 Notepad++ 脚本添加正则表达式更复杂。

相关内容