perl python文本处理_万行以上文本的分组编号——在 VIM 中嵌入 python 和 perl 脚本...

本文介绍了如何在 Vim 中利用 Python 和 Perl 脚本处理大文本,尤其是万行以上的数据。通过示例展示了如何对特定模式的行进行编号,对比了宏、VimL、Python 和 Perl 的效率,强调了在大量文本处理中,Python 和 Perl 的优势。文中提供了具体的函数示例,展示了如何在 Vim 脚本中嵌入 Python 和 Perl 代码。
摘要由CSDN通过智能技术生成

阅读前请注意:本文仅借此实例介绍如何在 vim 中使用 python 和 perl 脚本,不代表 vim 在处理格式化的较大文本时是一个好的选择。

对于行数较多的格式化文本(比如 log 文件),还是建议使用专门的处理工具或者通用脚本语言。

常见的通用脚本语言:perl、python;

Windows 可选方案:batch(批处理)、powershell 脚本、vbs;

*nix 可选方案:sed、awk、bash shell(建议配合前两者使用)。

早前,@杨君 朋友提出了一个问题:

我提供了一个使用宏的解决方案。此后在与杨君的交流中,得知杨君需要处理的文本行数稍多(数千行),这个数量已经超出宏的处理能力(并非不能做,只是速度太慢,无法接受),我后来建议他用其他工具处理。

实际上 vim 的宏只适宜临时处理很小的文本,面对行数较多的文本效率会明显下降。特别是在家用电脑的环境下,用宏或者命令来处理几千 k 的文件不是个好主意。

在本文中,我准备了如下测试文档,共 700007( 70 万零 7 行),文件大小 8.0M:

1| "value"

2| {

3| "wave"

4| "wave"

5| "wave"

6| "wave"

7| }

8| "value"

9| {

10| "wave"

11| "wave"

12| "wave"

13| "wave"

14| }

15| "value"

16| {

17| "wave"

18| "wave"

19| "wave"

20| "wave"

21| }

...

700001| "value"

700002| {

700003| "wave"

700004| "wave"

700005| "wave"

700006| "wave"

700007| }

目标是对每组的 "wave" 进行独立的编号:

1| "value"

2| {

3| "wave0"

4| "wave1"

5| "wave2"

6| "wave3"

7| }

8| "value"

9| {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值