如何使用记事本++和emeditor对文本中从0-9 az到所有随机行的行进行排序

Dea*_*val 2 text-editing notepad++ text-editors

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

我正在使用 Emeditor Notepad++

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

一小部分示例行:

0
1
3
4
5
6
7
8
9
10
A
a
B
b
C
c
D
d
E
e
Run Code Online (Sandbox Code Playgroud)

需要结果:

E
8
e
5
a
c
9
B
1
0
b
7
3
4
A
d
C
D
10
6
Run Code Online (Sandbox Code Playgroud)

Ana*_*man 5


\n

长话短说

\n

Notepad++ v7.9开始,Notepad++ 有一个称为随机行顺序的功能,它与下面给出的答案具有相同的功能(即,它随机化给定文档或选择中的行顺序)。

\n

可以通过Edit \xe2\x86\x92 Line Operations \xe2\x86\x92 Randomize Line Order 来访问它。

\n
\n

原答案

\n

据我所知,这两个程序都没有本机行随机化函数(更不用说使用正则表达式的程序了)。然而,两者都有可能通过插件支持此类功能。

\n

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

\n

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

\n

Python 脚本插件和 RandomizeLines.py

\n

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

\n

前任。Notepad++ 插件管理器中的 Python 脚本插件安装

\n

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

\n

安装插件后,您将需要重新启动 Notepad++。重新启动后,该插件应出现在Plugins \xe2\x86\x92 Python Script下。

\n

接下来,从 Github 下载这个基于 Python 的“npp-randomizelines”脚本克隆或下载\xe2\x86\x92下载 ZIP)。解压文件并选择RandomizeLines.py文件:

\n

前任。RandomizeLines Master - 提取

\n

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

\n

将RandomizeLines.py复制到Notepad++ \xe2\x86\x92 Plugins \xe2\x86\x92 Python Scripts \xe2\x86\x92 Scripts文件夹。根据您的 Notepad++ 安装,该位置可能与显示的位置不同。

\n

前任。RandomizeLines - Notepad++ 插件文件夹

\n

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

\n

重新启动 Notepad++,您现在应该有一个Plugins \xe2\x86\x92 Python Script \xe2\x86\x92 Scripts \xe2\x86\x92 RandomizeLines选项。

\n

前任。运行 RandomizeLines 脚本

\n

显示运行 RandomizeLines Python 脚本的 Notepad++ 菜单树的屏幕截图。 显示的树是标题为 Plugins 的主 Notepad++ 工具栏菜单、标题为 Python Script 的子菜单、标题为 Scripts 的第二个子菜单,最后是带有标题为 RandomizeLines 的条目的第三个子菜单,用于运行该脚本。

\n

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

\n

前任。部分脚本结果

\n
 B\n a\n c\n b\n 4\n A\n
Run Code Online (Sandbox Code Playgroud)\n
\n

笔记

\n
    \n
  • 运行时,如果没有选择任何行,它将随机化当前打开文件的所有行。如果单独的行被突出显示,它只会随机化这些行。

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

    \n
  • \n
  • 如果您想要 EmEditor 的类似脚本/插件,您可能必须使用 C++ 编写自己的代码。这似乎并不是一项艰巨的任务(至少对于任何熟悉 C++ 和简单 Windows 编码的人来说),但它可能比向上述 Notepad++ 脚本添加正则表达式更复杂。

    \n
  • \n
\n