我有一个包含(数百)数字块的文件,如下所示;
这个很好(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 ++中的正则表达式功能,但我很难让它工作。我感谢任何帮助。
答案 0 :(得分:1)
你可以通过宏来实现。
首先使用宏将大量零添加到每行的末尾。
end
down arrow
播放宏,直到所有行都显示为
11111111111111111100000000000000000000000000000000000000000000 16661666666666366100000000000000000000000000000000000000000000 16661111111111166100000000000000000000000000000000000000000000 16666636666366166100000000000000000000000000000000000000000000 11316111111116161100000000000000000000000000000000000000000000 131616666661616100000000000000000000000000000000000000000000 161616226261616100000000000000000000000000000000000000000000 1161616611261616100000000000000000000000000000000000000000000 1661616611661616100000000000000000000000000000000000000000000 1661616226261616100000000000000000000000000000000000000000000 1661616626661616100000000000000000000000000000000000000000000 1661611116111616100000000000000000000000000000000000000000000 166166666666661611100000000000000000000000000000000000000000000 166166616616336666100000000000000000000000000000000000000000000 164166616616661366100000000000000000000000000000000000000000000 111111111111111111100000000000000000000000000000000000000000000
则...
home
键right arrow
键20次shift
并按end
键delete
键down arrow
您可以将整个过程保存为单个宏,以便将来只需单击一下。
答案 1 :(得分:1)
您可以使用插件ConyEdit来执行此操作。 与ConyEdit在后台运行,请按照下列步骤操作:
cc.aal 00000000000000000000
在20个零字符的行之后追加。 cc.gc 1/\d{20}/
获取正则表达式匹配的第一列。 答案 2 :(得分:0)
想要手工制作而不是进步吗?
打开Findreplace
从最后一个复制到第一个没有数字的行,所以......
在这个例子中
111111111111111111< ---从这里开始 到这里---> 166616666666663661 166611111111111661
将其粘贴到罚款中(是的,您有效地复制了某些应用程序允许您手动输入其他内容的返回值)
然后在替换框中输入“0”然后返回 击中那个魔法取代所有:D
每次点击新行时都会添加0,然后添加一个新的......新行....
编辑:快速查看另一种方法,一秒钟恢复备用选项:P给我10
编辑2:
好的,这样的事情会起作用:P刚试过它。
在find replace中使用[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没有正则表达式,这是我的错误
\亿
测试并确认!不要忘记你需要匹配所有 ,WRAP 关闭!
等等你的其他数字,不确定你是否可以使用macros nd stuff循环:P但希望它比你现在有所帮助
两个很好的资源。答案 3 :(得分:0)
我可以给你一个宏观解决方案
转到文字的开头
选择Macro/Start Recording
按结束,按 0 16次然后按 Home 和向下箭头键
选择Macro/End Recording
您现在有一个宏可以在所有行的末尾添加十六个零。 在所有行上播放此宏。
您现在已经为所有行添加了零。
按 Alt 键并使用鼠标选择所需的文本块(列)并将其粘贴到另一个空的记事本选项卡中
列模式编辑的帮助是在记事本? / help contents
菜单
答案 4 :(得分:0)
基于OP的评论:您可以尝试一个名为vim / gvim的编辑器
在vim中打开文件,然后输入:
:%s/.*/\=printf("%-20s",getline("."))/|%s/ *$/\=substitute(submatch(0)," ","0","g")/
请勿忘记在上述输入后按<Enter>
。
然后您将看到文本已更改为您想要的内容。
当然vim宏也可以工作,但是,我觉得命令更好...... :)