1

我有一个包含(数百个)数字块的文件,如下所示;

这个很好(16x20,正确的行数和列数)

11111111111111111110
16666616666666661110
16111616111111162610
16111646111663132610
16162616261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261626132610
16166313661116632610
16111111111116132610
16666666666666136610
11111111111111111110

这个需要用尾随零填充,所以它是(16x20)

111111111111111111
166616666666663661
166611111111111661
166666366663661661
113161111111161611
1316166666616161
1616162262616161
11616166112616161
16616166116616161
16616162262616161
16616166266616161
16616111161116161
1661666666666616111
1661666166163366661
1641666166166613661
1111111111111111111

我想用零填充它们,所以它们都像第一个例子。我知道 notepad++ 中的正则表达式功能,但正在努力让它工作。我感谢提供的任何帮助。

4

5 回答 5

1

你可以通过宏来做到这一点。

首先使用宏在每一行的末尾附加大量的零。

  1. 第一个条目上的插入符号
  2. 点击录制宏
  3. end
  4. 输入 20 个零
  5. down arrow
  6. 点击停止录制
  7. 播放宏,直到所有行看起来像这样

    11111111111111111100000000000000000000000000000000000000000000 16661666666666366100000000000000000000000000000000000000000000 16661111111111166100000000000000000000000000000000000000000000 16666636666366166100000000000000000000000000000000000000000000 11316111111116161100000000000000000000000000000000000000000000 131616666661616100000000000000000000000000000000000000000000 161616226261616100000000000000000000000000000000000000000000 1161616611261616100000000000000000000000000000000000000000000 1661616611661616100000000000000000000000000000000000000000000 1661616226261616100000000000000000000000000000000000000000000 1661616626661616100000000000000000000000000000000000000000000 1661611116111616100000000000000000000000000000000000000000000 166166666666661611100000000000000000000000000000000000000000000 166166616616336666100000000000000000000000000000000000000000000 16416661661666136610000000000000000000000000000000 11111111111111111110000000000000000000000000000000

然后...

  1. 插入符号在第一行
  2. 点击记录
  3. 按键home_
  4. 按键right arrow20 次
  5. 按住键shift_end
  6. 按键delete_
  7. down arrow
  8. 点击停止录制
  9. 播放宏,直到处理完所有行

您可以将整个过程保存为单个宏,以便将来只需单击一下。

于 2013-02-14T16:21:34.930 回答
1

您可以使用插件 ConyEdit 来执行此操作。在后台运行 ConyEdit,请按照以下步骤操作:

  1. 使用命令行在cc.aal 00000000000000000000带有二十个零字符的行之后追加。
  2. 使用命令行cc.gc 1/\d{20}/获取正则表达式匹配的第一列。
于 2018-07-15T14:27:43.207 回答
0

我可以给你一个宏观的解决方案

转到文本的开头

选择Macro/Start Recording

end, 按016 次然后按Homedown arrow key

选择Macro/End Recording

您现在有一个宏可以在所有行的末尾添加 16 个零。在所有线路上播放此宏。

您现在已将零附加到所有行。

按键Alt并使用鼠标选择所需的文本块(列)并将其粘贴到另一个空白记事本选项卡中

列模式编辑的帮助在记事本? / help contents菜单中

祝你好运

于 2013-02-14T16:13:51.047 回答
0

想要手动而不是 progomatic 地执行此操作?

打开查找替换

从最后一个复制到第一个,没有数字,所以...

在这个例子中

111111111111111111 <---从这里到这里---> 166616666666663661 166611111111111661

将其粘贴到罚款中(是的,您有效地复制了某些应用程序允许您手动输入其他人不会的回报)

然后在替换框中,输入'0'然后你的回报击中那个魔法全部替换:D

然后,每次遇到新行时都会添加一个 0,然后添加一个新的...新行...。

编辑:快速审查另一种方法以恢复备用选项:P 给我 10

编辑2:

好吧,这样的事情会起作用:P刚刚测试过。
在查找替换中使用 [0-9]。因此,如果我正在寻找 123123123123 (最长 12 个)并且我需要将我抛光到 20 个,
那么您的 FIND 必须在 () 中,所以..

发现将是

 ([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]  )

并且替换被称为 \1 没有正则表达式,这是我的错误

\100000000

测试并确认!不要忘记你需要匹配所有东西,包起来

等等你的其他数字,不确定你是否可以用宏和东西循环这个:P但希望它比你现在有更多帮助

两个好资源。

http://blog.creativeitp.com/posts-and-articles/editors/understanding-regex-with-notepad/comment-page-1/

http://regexpal.com/

于 2013-02-14T15:47:38.010 回答
0

基于 OP 的评论:您可以尝试使用名为 vim/gvim 的编辑器

在 vim 中打开你的文件,然后输入:

:%s/.*/\=printf("%-20s",getline("."))/|%s/ *$/\=substitute(submatch(0)," ","0","g")/  

不要忘记<Enter>在上述键入后按。

然后你会看到文本已经变成了你想要的。

当然 vim 宏也可以工作,但是,我觉得命令更好...... :)

于 2013-02-14T16:35:36.383 回答