Wfr命令详解资料.docx

上传人:b****0 文档编号:254720 上传时间:2022-10-07 格式:DOCX 页数:27 大小:30.32KB
下载 相关 举报
Wfr命令详解资料.docx_第1页
第1页 / 共27页
Wfr命令详解资料.docx_第2页
第2页 / 共27页
Wfr命令详解资料.docx_第3页
第3页 / 共27页
Wfr命令详解资料.docx_第4页
第4页 / 共27页
Wfr命令详解资料.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Wfr命令详解资料.docx

《Wfr命令详解资料.docx》由会员分享,可在线阅读,更多相关《Wfr命令详解资料.docx(27页珍藏版)》请在冰豆网上搜索。

Wfr命令详解资料.docx

Wfr命令详解资料

简介

wfr 

  -支持多国语言的字符串批量查找和替换

  -批量字符集编码转换

∙纯unicode规则匹配内核,真正支持各国语言文字的正则匹配。

∙带有兼容性检查的字符集编码转换功能。

同时支持libiconv(iconv.dll)、IBMlibicu和Windows自带的字符集编码转换API。

∙支持TCL8.2兼容的高级正则表达式(ARE)。

∙支持一次性指定多个文件通配符和文件列表。

∙支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。

∙支持包含子目录。

∙支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。

替换时可以使用正则的子表达式。

∙同时支持posix标准的扩展正则表达式及perl风格的正则匹配。

∙可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。

∙支持DOS(Windows)、Macintosh和unix风格的换行符,可选择自动识别(默认)或手动指定。

∙统计功能,列出每个文件中的替换次数、总替换次数等。

∙支持Win32和纯DOS环境(纯DOS环境中需要HXDOSExtender支持)。

∙支持POSIX环境,提供linuxx86/x64、FreeBSD、NetBSD、Solaris等版本下载。

 

更新历史

2013-11-19,Ver2.3.9-1119

UPD:

在-s模式下,默认忽略无法访问的子文件夹。

2009-12-13,Ver2.3.6.1213

NEW:

新增-errstop参数。

使用此参数时,遇到无法访问的文件和子目录会报错并自动终止查找。

不使用此参数时,fr会自动跳过无法访问的子目录。

对于无法读写的文件,fr会输出一行报错信息,但不会终止搜索。

2009-03-12,Ver2.3.5.0312

FIX:

修正了在使用/r或/ric参数并且使用ARE'p'和's'模式进行匹配时,'^'有时仍然会匹配行首的问题。

    例如:

在dos格式的文件中,/r:

"***:

(?

p)(^.*)\n"会匹配所有行,而不仅仅是文件的第一行。

UPD:

现在-exp默认为开启状态,要禁用此选项,需要指定-noexp开关。

2008-09-09,Ver2.3.4.0909

UPD:

增强了正则行首锚点'^'的适应性。

2008-09-08,Ver2.3.3.0908

FIX:

纠正了正则表达式零长匹配时会出现无限循环的问题(例如,在内容“aaa.bbb”中将“[^.]*”替换为“z”)。

FIX:

纠正了正则行首锚点解析不正确的问题(例如,在内容“ccc”将“^c”替换为“z”)。

2008-08-16,Ver2.3.2.715

新增高级正则表达式(ARE)支持

2007-01-20,Ver2.3.1.120

新增-exp选项,开启该选项后,程序的内存使用量将增加一倍,但是在很多情况下,其处理速度将得到极大改善。

碰到性能问题的弟兄们可以试试。

该算法使用额外的内存消除了原地替换时带来的内存抖动,所以文件中要替换的值越多,算法带来的性能提升就越明显。

在siwen@CCF兄提供给我的样本上测试,开启了-exp选项以后,fr完成任务的时间从1小时降低到1.5秒(文件体积8.5MB,文件中需要替换的项目为25万项)。

 

所谓Unicode正则匹配

wfr内部使用完全基于UNICODE的高效正则引擎,能够完成各种国际化条件的正则匹配。

以下举例说明:

∙小写类能够正确匹配各国小写字母。

如:

中文全角字母“abcd”;希腊字母“α、β、ω”;俄文字母“ж、я、щ”等等。

∙大写类能够匹配各国大写字母。

如:

全角字母“ABCD”;希腊字母“Α、Β、Ω”;俄文字母“Ж、Я、Щ”等等。

∙字符类能匹配各国字母(中日韩的汉字也属于该类)。

∙标点类能够匹配各国标点符号,如:

“、,。

……『』”等等。

∙所有操作都支持宽字符,例如,表达式:

“[我你他她它]们”将被正确处理。

其它(数字、空白符、词边界等等)以此类推,全方位支持多语言。

以上字符分类的规则遵循UNICODE标准分类(UNICODEGeneralCategoryValues)具体请参考:

http:

//www.unicode.org/versions/Unicode4.0.0/ch04.pdf。

关于UNICODE正则的操作效率,这个引擎比我能找到的所有开源的非UNICODE匹配引擎至少快一倍左右(因为所有字符类的匹配都是直接查表映射的,都是标准O

(1)算法)。

不过这只是匹配引擎的效率,由于所有文件在“匹配->替换”前后都要做一次编码转换,所以典型应用下,wfr效率比fr低一些。

wfr并不是fr的升级版,能够用fr搞定的任务不推荐用wfr完成。

 

关于字符集编码

wfr支持分别指定三个参量的字符集编码:

1.输入编码:

输入文件或管道中内容的字符集编码。

默认为当前系统的默认代码页。

2.输出编码:

完成搜索->替换操作后,要输出到目标文件或管道中的编码。

默认与输入编码相同。

3.参数编码:

指定搜索和替换参数的内容使用何种字符集编码。

默认为当前系统的默认代码页。

例如:

“wfr*.txt*.htm-r:

"[иウ]"-t:

"狟ね"-encarg:

big5-encin:

gbk-encout:

utf-8-s”把当前目录和所有子目录下的任何txt及htm文件中的“[你我他她它]们”都替换为“朋友们”;文件的编码为:

gbk,参数使用 big5 指定,替换后将文件格式改为 utf-8 编码保存。

咋一看指定参数编码好像没用,其实不然。

例如在异种语言环境下(如在中文系统下操作韩文)的搜索替换;在DOS下使用wfr(DOS的系统默认代码页永远是ASCII)等场合,指定参数编码是很有意义的。

关于字符集转换功能库,如果当前系统搜索路径中存在GUN的libiconv库(iconv.dll),则优先使用libiconv,否则使用操作系统自带的字符集转换API。

这样做的考虑如下:

∙更严谨和稳定的结果:

iconv比Windows的字符集转换API更严格,不会出现意想不到的乱码和连篇问号等情况。

∙更有保障的支持:

Windows能否成功完成指定字符集编码转换,很大程度上取决于用户是否安装了相关的代码页文件。

在任何部署了libiconv库的计算机中,该库支持的字符集编码都能够被正确地转换。

∙跨平台支持:

libiconv可以用于几乎所有已知的平台。

 

典型应用

∙在命令行中单独使用,或作为管道过滤器使用。

例如:

“wfr*.txt*.htm-r:

"张(\a+/>)"-t:

"李\1"”将文档中所有姓张的兄弟姐妹改为姓李:

∙在批处理中应用。

∙与其它工具配合使用。

以上每种应用都可以分为三种情况讨论:

∙单纯的搜索替换。

∙单纯的字符集编码匹配和转换。

∙以上两种情况的混合应用。

 

简单中文帮助

C:

\DocumentsandSettings\Administrator>

#wfr

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

简单中文帮助

C:

\DocumentsandSettings\Administrator>

#wfr

===============================================================================

widefindandreplaceVer2.3.9-1119byBaiYang/2004-2013,免费软件

主页地址-

===============================================================================

在文件或管道中批量搜索-替换字符串——支持多字符集编码

用法:

wfr[文件通配符1文件通配符2...]{查找选项:

查找内容}{替换选项:

替换为}

[其它选项]

===============================================================================

查找选项:

-f:

-匹配精确串

-fic:

-匹配精确串(忽略大小写)

-r:

-正则表达式匹配

-ric:

-正则表达式匹配(忽略大小写)

-rnnl:

-跨行正则匹配

-rnnlic:

-跨行正则匹配(忽略大小写)

-any-匹配文件或管道中的所有内容,主要用于完成单纯的批量字符集编码转换

===============================================================================

替换选项:

-t:

-将匹配的内容替换为指定字符串

-tu:

-先将指定的“替换为”字符串变为大写,然后开始替换

-tl:

-先将指定的“替换为”字符串变为小写,然后开始替换

注意:

如果您正在使用正则匹配,那么您可以在“替换为”字符串中使用子表达式代换

(\0~\9)

===============================================================================

字符编码选项:

-encin:

-指定输入文本(文件或管道)的字符集编码。

默认值:

使用当前操作系统的默认代码页。

-encout:

-指定输出(结果)文本的字符集编码。

默认值:

与"-encin"指定的值相同。

-encarg:

-指定搜索和替换选项的内容使用何种字符集编码。

默认值:

使用当前操作系统的默认代码页。

-unisign-如果输出指定为UNICODE宽字符编码(如:

UCS-2,UTF-8/16等),则在文

件头部加入BOM签名,这样支持unicode的文本编辑器将会自动识别该文

件的编码格式。

-listenc-列出所有wfr支持的字符集编码。

-listcmp-列出wfr认可的键入字符集编码转换规则表。

-force-强制实施转换,忽略编码兼容性规则。

===============================================================================

其它选项:

-h-?

-当前屏幕

-s-包含子目录

-exp-启用内存扩展算法,将会加倍wfr的内存使用量,但是很多时候可以极大地

提高执行效率。

现已默认开启。

-noexp-禁用内存扩展算法,参考:

-exp选项的说明。

-stdin-从标准输入设备获得要查找的内容,并将结果从到标准输出设备(如果未指

定任何文件模板的话,则自动启用该选项)

-stdout-像平时一样,从文件中获得输入,但将结果送到标准输出(而不是写回文

件)

-frc-显示每个文件内发生的替换次数

-trc-显示所有文件总

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1