中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [推荐]推荐几个增强的正则表达式查找、替换工具
作者:
标题: [推荐]推荐几个增强的正则表达式查找、替换工具 上一主题 | 下一主题
fastrun
初级用户





积分 46
发帖 24
注册 2006-12-13
状态 离线
『楼 主』:  [推荐]推荐几个增强的正则表达式查找、替换工具

推荐一下白杨的几个命令行查找替换工具,比CMD自带的findstr强大,也有比grep优越的地方。很好用。在CCF看到的。顺便转一下。
http://www.baiy.cn/

1、命令行工具f - 在文件中查找匹配的字符串

功能简介
* 支持一次性指定多个文件通配符和文件列表。     
* 支持管道模式,与其它命令协同工作。     
* 支持包含子目录,与 grep 不同,即使查找目录中不包含任何匹配文件,也会继续子目录查找。     
* 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。   
* 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。     
* 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。     
* 可完全自定义的匹配结果输出格式,更方便查看或与其它软件配合。     
* 统计功能,列出每个文件中的匹配次数、总匹配次数等,也可以仅列出发现匹配的文件列表。     
* 支持Win32和纯DOS环境(纯DOS环境中需要 HX DOS Extender 支持)。


  Quote:
   
典型应用

1. 在命令行中单独使用,或作为管道过滤器使用。例如:“expand -d *.cab | f -ric:g.*.(dll|exe)”在当前目录下的所有cab文件中查找g开头的dll或exe文件。           
2. 在批处理中应用           
3. 与其它工具配合使用,例如:vim中键入:“:set grepprg=f\ /o:F:l:o”后,可以为vim加入批量匹配的功能。这时使用vim命令:“:grep *.h *.c *.cpp *.hpp *.cxx /s /r:test.*string”搜索当前目录及子目录下所有源文件。之后可以使用 :cn 命令跳转到下一个匹配;:cnf 命令跳转到下一个文件中的第一个匹配等等。



  Quote:
引用: 作者: lyh728 sed sed   还有lz 的工具 比grep 强在哪里?

这个,功能简介里都说了,呵呵。  
总结一下大概有几条:
1. grep带子目录搜索时,如果搜索开始的那个目录里没有满足通配符的文件,则搜索终止,不会检查子目录。 例如: grep -r -i 'test' *.cpp  如果当前目录下没有 .cpp 文件,但子目录下有,grep会失败而不会搜索子目录。  
2. 多文件通配符支持,可以这样:f *.h *.cpp *.c *.txt /s ....。grep好像不行。
3. 一些零碎的改进,像自定义输出格式等等。

-----------------------------------------------------------
2、find - replace
fr - 在文件中批量查找并替换匹配的字符串

最后更新:2009-12-13, Ver 2.1.6.1213

    * 支持一次性指定多个文件通配符和文件列表。
    * 支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。
    * 支持包含子目录。
    * 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。替换时可以使用正则的子表达式。
    * 支持 TCL 8.2 兼容的高级正则表达式(ARE)。
    * 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。
    * 可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。
    * 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。
    * 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
    * 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

------------------------------------------------------------
3、wide find - replace
wfr
  - 支持多国语言的字符串批量查找和替换
  - 批量字符集编码转换

最后更新:2009-12-13, Ver 2.3.6.1213

    * 纯 unicode 规则匹配内核,真正支持各国语言文字的正则匹配。
    * 支持 TCL 8.2 兼容的高级正则表达式(ARE)。
    * 带有兼容性检查的字符集编码转换功能。同时支持 GUN libiconv(iconv.dll) 和 Windows 自带的字符集编码转换 API。
    * 支持一次性指定多个文件通配符和文件列表。
    * 支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。
    * 支持包含子目录。
    * 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。替换时可以使用正则的子表达式。
    * 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。
    * 可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。
    * 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。
    * 统计功能,列出每个文件中的替换次数、总替换次数等。
    * 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
    * 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

在上面的主页还有其他一些命令行工具,各位可以按需查找。

2010-5-9 10:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

wfr会被很多杀软干掉,尽量少用吧。



2010-5-9 11:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 3 楼』:  

这个就不用发了,发过很多次了。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2010-5-9 11:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastrun
初级用户





积分 46
发帖 24
注册 2006-12-13
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by HAT at 2010-5-9 11:33 AM:
wfr会被很多杀软干掉,尽量少用吧。

误报而已,最新的杀软已经不报了。白杨自己也在主页中说明,可能会误报。用UPX解压缩一下就可以了。
下面为http://virusscan.jotti.org网站扫描的结果。
http://virusscan.jotti.org/en/sc ... 83a8d13601d248b576c

附件 1: scan.png (2010-5-9 13:39, 85.66 K)


2010-5-9 13:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 5 楼』:  

什么叫白杨的呢?



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-5-9 15:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastrun
初级用户





积分 46
发帖 24
注册 2006-12-13
状态 离线
『第 6 楼』:  

是他的作品啊。楼上的名字好熟,是那个寒星随意录的寒星吗?

2010-5-9 16:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asnahu
初级用户





积分 99
发帖 53
注册 2006-8-18
状态 离线
『第 7 楼』:  

这个工具在论坛介绍的次数太多了。说到正则,楼主最好接触一下SED,用好SED才是王道。

2010-5-9 17:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastrun
初级用户





积分 46
发帖 24
注册 2006-12-13
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by asnahu at 2010-5-9 05:16 PM:
这个工具在论坛介绍的次数太多了。说到正则,楼主最好接触一下SED,用好SED才是王道。

感谢推荐和指导。
也是今天偶然要临时用命令行正则才翻到的。平时Emeditor基本就够用了。

搜索SED命令好强大。第一眼看去有点头大。
回头有空再慢慢研究一下。

2010-5-9 17:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: