February 3, 2007
一直以来, 众多的编辑器只能做查找和替换工作, 假如你要从一篇文章中选择一些符合你要求的文字出来的话, 把其他不符合要求的文字全部都去掉的话, 那只有一招, 把你不需要的文字都替换成空, 这个在很多的编辑器中很难做到, 例如 editplus, 它自带的正则表达式几乎没有办法来做这个事情(注: 或许是我的水平太差, 请高手告诉方法)。 emeditor可以做到这个事情, 但这个正则表达式也的确是比较难写, 因为这个正则表达式很少用到, 也几乎很少在教程中看到, 这个正则表达式就是 “(^|(?<=url)).*?(?=url|$)”, 把中间的那个url替换成你要保留的那个字符就可以了。 但这个也不一定就是最完美的。 所以就有了sed的用武之地, sed可以将你需要的部分保留下来, 删除你不需要的部分, 也不用通过很多的替换步骤就可以了, sed一直被我用来干这种事情, 我用的最多的也就是sed -e “p。。。”的语句, 保留我自己需要的那部分。
一直在寻找替换windows自带的notepad 的软件, 也一直在tedpad, notepad++, editplus等等之间来回的试用, 这些软件用来替换都很不错, 但如notepad++, editplus等都不是单一文件的, 替换起来很不方便, 而且notepad++还是有些许问题, 用来替换windows 自带的 notepad 后总还是有部分文件无法打开, 打开就出现错误被关闭, 我在网上也看到有人说这个问题, TEDPAD 又感觉太弱, 还不如用自带的, 后来又试用了 notepad2, 以前听说这个在处理中文的时候可能会出现某些问题, 不过这次替换是一点问题都没有, notepad2 现在应该来说分为两个版本, 一个是2004及以前的, 是这个网站做的 http://www.flos-freeware.ch/notepad2.html , 最新的版本是 1.0.12; 后来这个网站的作者好像不做了, 有人接着干, 把notepad2 移动到了这里 http://sourceforge.net/projects/notepad2/ , 目前最新的版本是1.1.0.8 , 我现在用的就是后面这个地方做的版本, 对前面的一个版本已经增强了不少, 但同样文件的尺寸也大了不少, 这个版本中我最喜欢, 也最新颖的就是一个名为“收集”的功能, 他就可以实现 SED 的 p 功能。 这个对某些要实现从一篇文章中截取一些特定格式字符的人来说是很有用的, 可以免去编写复杂偏僻的正则表达式的麻烦。
上次我用 SED 将 WUD 的列表弄出来了, 这次因为有了 notepad2 1.1.0.8 我就没有再用 SED, 而是用了notepad2的“收集”功能将列表给导出来了, 对用惯windows的用户来说这个比 SED 更为直观。
另外notepad2 还内置了很多的高亮模式以前字符转换, 编码转换等功能, 用来替换windows 自带的 notepad 是最合适不过了, 只不过这个块头大了些, 有1.6M多。 但自古没有十全十美的事情, 就忍受一下吧。 呵呵, 实在不行用upx压缩一下, 压了之后也挺小的, 才600k多点, 可以给点心理安慰, 呵呵!
您喜欢本文吗?即刻订阅"偶爱偶家",精彩文章不再错过!现在就给我们留个话吗?
Random Posts


2 responses to "用notepad2中的收集功能替代SED"
使用Regex收集、替换、数据,最强的应该是PowerGREP,可以很好地满足你文中第一段所提出来的要求。但它的定位是用regex进行数据处理而不是常规的文本编辑。
Editplus和notepad++的正则引擎是自己写的,功能确实弱。相比之下,个人觉得UltraEdit和EmEditor应该是正则支持比较好的文本编辑器,前者支持包括perl在内的三种正则风格,后者有比较简单的replace处理功能。它们的具体特征,你看看它们的帮助文件里相应的正则部分就可以发现了。
当然,还有VIM如果用熟了也很强,不过我个人不习惯这个。
改天我会在我的blog上发些关于这方面的东东,欢迎来时来访
[Reply]
换模板了,很漂亮啊!
[Reply]