最后更新:2012-01-19, Ver 2.3.3.0119
- 在文件中查找匹配的字符串
|
2012-01-19, Ver 2.3.3.0119
2010-02-16, Ver 2.3.2.0216
2009-12-13, Ver 2.3.1.1213
2009-03-12, Ver 2.3.0.0312
2008-09-21, Ver 2.2.1.0921
2008-09-09, Ver 2.1.4.0909
2008-09-08, Ver 2.1.3.0908
2008-08-16, Ver 2.1.2.715
2006-07-28, Ver 2.0.5.728
|
|
C:\Documents and Settings\Administrator>
#f
===============================================================================
find Ver 2.3.3.0119 by BaiYang / 2004 - 2012, 免费软件
http://baiy.cn
===============================================================================
在文件中匹配字符串
用法: f [文件通配符1 文件通配符2 ...] <查找选项>:<匹配串> [其它选项]
===============================================================================
查找选项:
-f: - 匹配精确串
-fic: - 匹配精确串(忽略大小写)
-r: - 正则表达式匹配
-ric: - 正则表达式匹配(忽略大小写)
-rnnl: - 跨行正则匹配
-rnnlic: - 跨行正则匹配(忽略大小写)
-l:nnn-mmm - 匹配从 'nnn' 行开始,直到 'mmm' 行的所有内容。如果 '-mmm' 被忽略
则从 'nnn' 行开始一直匹配到文件结束
===============================================================================
其它选项:
-s - 包含子目录
-stdin - 从标准输入设备获得要查找的内容(如果未指定任何文件模板的话,则自动
启用该选项
-o: - 指定输出格式,以下关键字:
f 文件名(相对路径)
F 文件名(绝对路径)
o 匹配起始处在行中的字符偏移
x 匹配起始处在行中的字符偏移(十六进制)
b 匹配起始处在行中的字节偏移
s 匹配串的字符长度
S 匹配串的字节长度
O 匹配起始处在整个文件中的字符偏移
X 匹配起始处在整个文件中的字符偏移(十六进制)
B 匹配起始处在整个文件中的字节偏移
l 行号
c 行的内容
C 整个文件的内容
k 精确地输出匹配的文本块,包含多行匹配的所有内容
t 制表符(Tab)
r 回车符
n 换行符
默认格式: 普通模式时:'f:l:c'(文件相对路径:行:行内容);
使用 -stdin 选项时:'c';使用 -l: 匹配时:'k'
-of: - 仅列出匹配的文件,该选项使 “-o:” 选项无效,关键字为:
f 文件名(相对路径)
F 文件名(绝对路径)
默认值: 如果使用 "-of" 时,未指定任何关键字,默认列出相对路径
-co - 使用紧凑输出模式:对同一行中的多次匹配结果,仅输出一次。
-fmc - 列出每个文件的匹配计数
-tmc - 列出总匹配计数
-format: - 指定文件换行符格式,可以是:"auto", "dos", "unix" 或 "mac"
默认: auto(自动)
-unicode - 使 find 将输入文件按 unicode (utf-16) 格式进行解析
默认: 按 ANSI/MBCS 编码进行解析
-errstop - 当遇到文件或子目录访问错误时,终止搜索任务。
默认: 遇到无法访问的子目录访跳过;遇到无法访问的文件时,打印错误
信息并继续
===============================================================================
POSIX 和 Perl 风格的正则表达式:
- "find" 完整支持 POSIX.2 扩展标准及 Perl 风格的正则表达式。
以下是支持的字符类及其对应关系:
POSIX perl 描述
--------------------------------------------------------------------
[:alnum:] 字母和数字
[:alpha:] \a 字母
[:lower:] \l 小写字母
[:upper:] \u 大写字母
[:blank:] 空格和制表符
[:space:] \s 空白字符
[:cntrl:] 控制字符
[:digit:] \d 十进制数字
[:xdigit:] \x 十六进制数字
[:graph:] 可打印字符(不包括空白符)
[:print:] \p 可打印字符(包括空白符)
[:punct:] 标点符号
- 以下是一些 perl 的特殊字符类:
perl POSIX等效 描述
--------------------------------------------------------------------
\o [0-7] 八进制数字
\O [^0-7] 非八进制数字
\w [[:alnum:]_] 单词组成
\W [^[:alnum:]_] 非单词组成
\A [^[:alpha:]] 非字母
\L [^[:lower:]] 非小写字母
\U [^[:upper:]] 非大写字母
\S [^[:space:]] 非空白符
\D [^[:digit:]] 非十进制数字
\X [^[:xdigit:]] 非十六进制数字
\P [^[:print:]] 非可打印字符
\< [^[:alpha:]_] 单词开始
\> [^[:alnum:]_] 单词结束
- 注意: posix 字符类是必须工作在集合中的(“[”和“]”内)。相反,perl 风格
的字符类是工作在集合运算之外的。
- 此外,为了便于在命令行输入一些特殊字符,特别定义了一下别名:
perl风格 POSIX风格 描述
-----------------------------------------------------------------------
\" [:dq:] 双引号
\' [:sq:] 单引号
\t [:tb:] 制表符
\n [:nl:] 换行符 (0x0A)
\r [:rt:] 回车符 (0x0D)
\b [:bs:] 退格符
===============================================================================
TCL 8.2 兼容的高级正则表达式(ARE)
- 为 -r:, -ric:, -rnnl:, -rnnlic: 等命令添加 '***:' 前缀即可开启高级正则表达
式功能。ARE 提供了比 POSIX ERE/BRE 更为强大的正则匹配语法,并且使用一套自定
义的字符类。有关 ARE 的详细信息,请访问:
http://baiy.cn/utils/_regex_doc/index.htm
===============================================================================
返回码:
-1 - 搜索时发生错误
0 - 搜索成功(发现匹配)
1 - 搜索失败(未发现匹配)
===============================================================================
开关的前缀和后缀:
* 所有命令行开关(选项)都是大小写无关的(如: "-fic:" 和 "-FIC:")
* 开关的前缀可以是 "-" 或 "/"(如: "/s" 和 "-s")
* 开关的后缀可以是 ":" 或 "="(如: "/f:", "/f=", "-f:" 和 "-f=" 等效)
===============================================================================
应用示例:
f *.txt *.htm -f:something
f *.cpp *.hpp *.c *.h -fic:myfunc -o:"[F]:[l]:[o]nc"
f *.cpp *.h -r:"***:#define.*?MY_DEF"
type myfile.txt | f -f:BaiYang
expand -d *.cab | f -f:gdi32.dll
|
C:\Documents and Settings\Administrator> #f |
安装步骤:
注意事项:
|
| f.rar (Windows/DOS,DOS
下使用需要 HXDOS 环境支持) f_linux_x86.zip (在 Ubuntu 8.04 上测试通过) f_linux_x64.zip (在 Ubuntu 8.04 上测试通过) f_freebsd_x64.zip(在 FreeBSD 7.0 上测试通过) f_netbsd_x86.zip (在 NetBSD 5.0.1 上测试通过) f_solaris_x86.zip(在 OpenSolaris 2009.06 上测试通过) |