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)
长话短说
\n从Notepad++ v7.9开始,Notepad++ 有一个称为随机行顺序的功能,它与下面给出的答案具有相同的功能(即,它随机化给定文档或选择中的行顺序)。
\n可以通过Edit \xe2\x86\x92 Line Operations \xe2\x86\x92 Randomize Line Order 来访问它。
\n原答案
\n据我所知,这两个程序都没有本机行随机化函数(更不用说使用正则表达式的程序了)。然而,两者都有可能通过插件支持此类功能。
\n不幸的是,我找不到 EmEditor 的任何预制解决方案,但有一个名为Python Script的 Notepad++ 插件,它支持另一个外部脚本,可以在 Notepad++ 中对行进行基本随机化。
\n关于“大”文件标准,Notepad++ 可能会遇到较大文件的问题(尽管打开约 500MB 的文件肯定是可能的,没有问题)。如果确实遇到任何错误,您可能需要将文件拆分为更小的块。
\nPython 脚本插件和 RandomizeLines.py
\n首先,通过 Notepad++ 插件管理器下载并安装Python 脚本插件:
\n前任。Notepad++ 插件管理器中的 Python 脚本插件安装
\n\n安装插件后,您将需要重新启动 Notepad++。重新启动后,该插件应出现在Plugins \xe2\x86\x92 Python Script下。
\n接下来,从 Github 下载这个基于 Python 的“npp-randomizelines”脚本(克隆或下载\xe2\x86\x92下载 ZIP)。解压文件并选择RandomizeLines.py文件:
\n前任。RandomizeLines Master - 提取
\n\n将RandomizeLines.py复制到Notepad++ \xe2\x86\x92 Plugins \xe2\x86\x92 Python Scripts \xe2\x86\x92 Scripts文件夹。根据您的 Notepad++ 安装,该位置可能与显示的位置不同。
\n前任。RandomizeLines - Notepad++ 插件文件夹
\n\n重新启动 Notepad++,您现在应该有一个Plugins \xe2\x86\x92 Python Script \xe2\x86\x92 Scripts \xe2\x86\x92 RandomizeLines选项。
\n前任。运行 RandomizeLines 脚本
\n\n根据您的原始输入,运行脚本后我得到以下信息:
\n前任。部分脚本结果
\n B\n a\n c\n b\n 4\n A\n
Run Code Online (Sandbox Code Playgroud)\n笔记
\n运行时,如果没有选择任何行,它将随机化当前打开文件的所有行。如果单独的行被突出显示,它只会随机化这些行。
\n我还没有使用过Python 脚本插件本身,但您可以使用 Python 的本机正则表达式模块来扩展脚本。关于语法,该插件显然使用了 Python 2.7 的 .dll 版本。
\n如果您想要 EmEditor 的类似脚本/插件,您可能必须使用 C++ 编写自己的代码。这似乎并不是一项艰巨的任务(至少对于任何熟悉 C++ 和简单 Windows 编码的人来说),但它可能比向上述 Notepad++ 脚本添加正则表达式更复杂。
\n 归档时间: |
|
查看次数: |
10023 次 |
最近记录: |