转帖仅供参考,未测试是否可行。
http://upload.cn-dos.net/img/1051.zip
wide find and replace Ver 2.3.1.120 by BaiYang / 2004 - 2007, 免费软件
主页地址 - http://baiy.cn
===============================================================================
在文件或管道中批量搜索-替换字符串——支持多字符集编码
用法: wfr {查找选项:查找内容} {替换选项:替换为}
===============================================================================
查找选项:
-f: - 匹配精确串
-fic: - 匹配精确串(忽略大小写)
-r: - 正则表达式匹配
-ric: - 正则表达式匹配(忽略大小写)
-rnnl: - 跨行正则匹配
-rnnlic: - 跨行正则匹配(忽略大小写)
-any - 匹配文件或管道中的所有内容,主要用于完成单纯的批量字符集编码转换
===============================================================================
替换选项:
-t: - 将匹配的内容替换为指定字符串
-tu: - 先将指定的“替换为”字符串变为大写,然后开始替换
-tl: - 先将指定的“替换为”字符串变为小写,然后开始替换
-h -? - 当前屏幕
注意: 如果您正在使用正则匹配,那么您可以在“替换为”字符串中使用子表达式代换
(\0 ~ \9)
===============================================================================
字符编码选项:
-encin: - 指定输入文本(文件或管道)的字符集编码。
默认值: 使用当前操作系统的默认代码页。
-encout: - 指定输出(结果)文本的字符集编码。
默认值: 与 "-encin" 指定的值相同。
-encarg: - 指定搜索和替换选项的内容使用何种字符集编码。
默认值: 使用当前操作系统的默认代码页。
-unisign - 如果输出指定为 UNICODE 宽字符编码 (如: UCS-2, UTF-8/16 等), 则在文
件头部加入 BOM 签名,这样支持 unicode 的文本编辑器将会自动识别该文
件的编码格式。
-listenc - 列出所有 wfr 支持的字符集编码。
-listcmp - 列出 wfr 认可的键入字符集编码转换规则表。
-force - 强制实施转换,忽略编码兼容性规则。
===============================================================================
其它选项:
-s - 包含子目录
-exp - 启用内存扩展算法,将会加倍 fr 的内存使用量,但是很多时候可以极大地
提高执行效率。如果你碰到了性能问题,可以尝试开启该选项。
-stdin - 从标准输入设备获得要查找的内容,并将结果从到标准输出设备(如果未指
定任何文件模板的话,则自动启用该选项)
-stdout - 像平时一样, 从文件中获得输入, 但将结果送到标准输出(而不是写回文
件)
-frc - 显示每个文件内发生的替换次数
-trc - 显示所有文件总共发生的替换次数
===============================================================================
POSIX 和 Perl 风格的正则表达式:
- "find - replace" 完整支持 POSIX.2 扩展标准及 Perl 风格的正则表达式。
以下是支持的字符类及其对应关系:
POSIX perl 描述
--------------------------------------------------------------------
字母和数字
\a 字母
\l 小写字母
\u 大写字母
空格和制表符
\s 空白字符
控制字符
\d 十进制数字
\x 十六进制数字
可打印字符(不包括空白符)
\p 可打印字符(包括空白符)
标点符号
- 以下是一些 perl 的特殊字符类:
perl POSIX等效 描述
--------------------------------------------------------------------
\o 八进制数字
\O 非八进制数字
\w _] 单词组成
\W _] 非单词组成
\A ] 非字母
\L ] 非小写字母
\U ] 非大写字母
\S ] 非空白符
\D ] 非十进制数字
\X ] 非十六进制数字
\P ] 非可打印字符
\< _] 单词开始
\> _] 单词结束
- 注意: posix 字符类是必须工作在集合中的(“”内)。相反,perl 风格
的字符类是工作在集合运算之外的。
- 此外,为了便于在命令行输入一些特殊字符,特别定义了一下别名:
perl风格 POSIX风格 描述
-----------------------------------------------------------------------
\" 双引号
\' 单引号
\t 制表符
\n 换行符 (0x0A)
\r 回车符 (0x0D)
\b 退格符
===============================================================================
开关的前缀和后缀:
* 所有命令行开关(选项)都是大小写无关的(如: "-fic:" 和 "-FIC:")
* 开关的前缀可以是 "-" 或 "/"(如: "/s" 和 "-s")
* 开关的后缀可以是 ":" 或 "="(如: "/f:", "/f=", "-f:" 和 "-f=" 等效)
===============================================================================
应用示例:
wfr *.txt *.htm -f:teh -t:the
wfr *.txt -fic:"My Dir" -tu:"%ROOTDIR%"
type server.log | wfr /r:"Connected.*218.79" /t:"**Attack** \0"
type server.log | wfr /r:"^(Smith|James).*\n" /t
unzip -l *.zip | wfr /r:"^(.{22}:\d\d\s*|(A| \a| -|.*files$).*\n)" /t
wfr *.txt /s /any /encin:gbk /encout:utf-8
wfr *.log /any /encin:ucs-2 /encout:gbk /stdout | OtherApp.exe ...
wfr *.txt *.htm -r:"张(\a+/>)" -t:"李\1"
wfr *.txt *.htm -r:"们" -t:"朋友们"