大规模文本操纵?

大规模文本操纵?

我有一个包含几十万字的文本文件。例如:

word1
word2
etc

我想知道可以使用什么程序来轻松实现以下目的:

  1. 在文本前面添加“FRONT”,然后
  2. 在文本末尾添加“BACK”

因此我最终会得到:

FRONTword1BACK
FRONTword2BACK
FRONTetcBACK

我可以通过使用 PHP 编码轻松完成此操作,但我想知道是否有更快的方法,使用正确的工具?也许这可以在 notepad++ 或 scite 之类的东西中完成,或者最坏的情况下,在 linux 命令行中完成。

注意:我更喜欢基于 WINDOWS 的可视化编辑器。

答案1

在 NotePad++ 中执行正则表达式替换:

查找内容:^(.*)$

替换为:FRONT\1BACK

从正则表达式的角度来看,发生了什么?

^ - 匹配行首
$ - 匹配行尾
.* - 匹配其间的所有内容(用括号括起来以将其标记为一个组)

替换只是您想要的前置和后置修复以及夹在中间的第一个正则表达式组(即行上的所有内容)的值。

答案2

VIM 适用于 Windows。如果你从未使用过它,你可能会遇到入门问题,但只要你学习了基础知识,所有的魔法都可以使用。

1)在每一行的第一个字符前添加一些内容:

  • 转到第一行、第一列。
  • Ctrl+vCtrl+q 进入视觉块模式。
  • Ctrl+g 转到最后一行。
  • Shift+i 进入可视化插入模式。
  • 输入文本并按 Esc。文本应出现在所有行中。

2) 在末尾添加一些内容。如果所有单词的长度相同,则可以按上述方法操作。如果不是,请使用宏。

  • 转到第一行。
  • 按两次“q”。首先开始录制,然后选择要录制的缓冲区(可以是任何字母)。
  • Shift+a 开始在行尾插入文本。
  • 输入所需文本。
  • Esc 停止插入。
  • 向下箭头或“j”转到下一行。
  • 再次按‘q’停止录音。
  • 现在您可以输入“@@”或“@q”来重播记录的操作。“@@”重播最后一条记录,“@q”重播“q”缓冲区下的记录(本例中相同)。
  • 输入“1000@@”可重播宏 1000 次。

相关内容