Find命令的用法:
使用Oracle的时候常常想,在NT上类似于UNIX里的grep的命令是什么呢?
查了一下,其实find命令就可以实现这个类似的功能。
1.系统帮助
C:>find /?
在文件中搜索字符串。
FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
"string" 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。
如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。
2.举例
/N 参数显示行号
C

racleRDBMSADMIN>dir *.lis
驱动器 C 中的卷是 本地磁盘
卷的序列号是 402A-3A7E
C

racleRDBMSADMIN 的目录
2002-11-07 22:41 2,578 spauto.lis
2002-11-07 22:29 204 spcpkg.lis
2002-11-07 22:29 2,276 spctab.lis
2002-11-07 22:28 2,630 spcusr.lis
2002-11-07 22:28 7,316 spdtab.lis
5 个文件 15,004 字节
0 个目录 484,114,432 可用字节
C

racleRDBMSADMIN>find /N "error" spctab.lis
---------- SPCTAB.LIS
[336]SPCTAB complete. Please check spctab.lis for any errors.
C:oracleRDBMSADMIN>find /N "error" spcpkg.lis
---------- SPCPKG.LIS
[13]SPCPKG complete. Please check spcpkg.lis for any errors.
C:oracleRDBMSADMIN>find /N "ORA-" spdtab.lis
---------- SPDTAB.LIS
[3]ORA-00900: 无效 SQL 语句
[6]ORA-01432: 要删除的公用同义词不存在
[9]ORA-02289: 序列(号)不存在
[12]ORA-01432: 要删除的公用同义词不存在
[15]ORA-00942: 表或视图不存在
[18]ORA-01432: 要删除的公用同义词不存在
[21]ORA-00942: 表或视图不存在
[24]ORA-01432: 要删除的公用同义词不存在
在UNIX下,我们要用grep命令:
$ grep ORA- *.lis
spdtab.lis:ORA-00900: 无效 SQL 语句
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-02289: 序列(号)不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-00942: 表或视图不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
spdtab.lis:ORA-00942: 表或视图不存在
spdtab.lis:ORA-01432: 要删除的公用同义词不存在
同样在NT下,find命令也支持多个文件输入
C:oracleRDBMSADMIN>find "ORA-" *.lis
---------- SPAUTO.LIS
---------- SPCPKG.LIS
---------- SPCTAB.LIS
---------- SPCUSR.LIS
---------- SPDTAB.LIS
ORA-00900: 无效 SQL 语句
ORA-01432: 要删除的公用同义词不存在
ORA-02289: 序列(号)不存在
ORA-01432: 要删除的公用同义词不存在
ORA-00942: 表或视图不存在
ORA-01432: 要删除的公用同义词不存在
ORA-00942: 表或视图不存在
ORA-01432: 要删除的公用同义词不存在
看,基本上达到了同样的效果。
2.管道和重定向
通过使用管道和重定向,find和其它命令结合可以得到其它你想要的效果。
假定需要 find 命令搜索硬盘,以查找并显示在驱动器 C 上包含字符串“CPU”的文件名要执行该操作,可以使用管道 (|) 将 dir 命令的结果定向到 find,如下例所示:
dir c: /s /b | find "CPU"
因为 find 搜索区分大小写并且 dir 产生的输出是大写的,所以必须用大写字母键入“CPU”或者使用带有/i 开关的 find。
随便说说,个人的一点心得,希望对大家有点用处!