find的分类

如题所述

第1个回答  2016-05-12

名称:find
用法:find path -option [ -print ] [ -exec -ok command ] {} \;
使用说明:
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部分。
-exec:对搜索的结果执行指定的shell命令。注意格式要正确:-exec 命令 {} \;。注意“{}” 与\;之间有空格。
-mount,-xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
-amin -n : 在最近的 n 分钟内被读取过
-amin +n : 在 n 分钟之前被读取过
-anewer file : 比档案 file 更晚被读取过的档案
-atime -n : 在最近的 n 天内读取过的档案
-atime +n : 在 n 天前读取过的档案
-cmin -n : 在最近的 n 分钟内被修改过
-cmin +n : 在 n 分钟前被修改过
-cnewer file :比档案 file 更新的档案
-ctime -n : 在最近的 n 天内修改过的档案
-ctime +n : 在 n 天前修改过的档案
-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p,-path p : 路径名称符合 p 的档案,ipath 会忽略大小写
-name name,-iname name : 档案名称符合 name 的档案。iname 会忽略大小写
-size n[cwbkMG] : 档案大小 为 n 个由后缀决定的数据块。其中后缀含义为:
b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b)
c: 表示字节数
k: 表示 kilo bytes (1024字节)
w: 字 (2字节)
M:兆字节(1048576字节)
G: 千兆字节 (1073741824字节)
-type c : 档案类型是 c 的档案。
d: 目录
c: 字型装置档案
b: 区块装置档案
p: 具名贮列
f: 一般档案
l: 符号连结
s: socket
-pid n : process id 是 n 的档案
你可以使用 () 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1,exp2
范例:
将目前目录及其子目录下所有延伸档名是 c 的档案列出来。
# find . -name *.c
将目前目录其其下子目录中所有一般档案列出
# find . -ftype f
将目前目录及其子目录下所有最近 20 天内更新过的档案列出
# find . -ctime -20
查当前目录下的所有普通文件
#find . -type f -exec ls -l {} \; 名称:find
作用:在文件中搜索字符串。
用法:FIND [/V] [/C] [/N] [/OFF[LINE]] string [[drive:][path]filename[ ...]]
参数:
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
string 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。
如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。 Find函数用来对原始数据中某个字符串进行定位,以确定其位置。Find函数进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串。
使用语法
FIND(find_text,within_text,start_num)
Find_text 是要查找的文本。
Within_text 是包含要查找文本的文本。
Start_num 指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。如果忽略 start_num,则假设其为 1。
注意
使用 start_num 可跳过指定数目的字符。例如,假定使用文本字符串“AYF0093.YoungMensApparel”,如果要查找文本字符串中说明部分的第一个“Y”的编号,则可将 start_num 设置为 8,这样就不会查找文本的序列号部分。FIND 将从第 8 个字符开始查找,而在下一个字符处即可找到 find_text,于是返回编号 9。FIND 总是从 within_text 的起始处返回字符编号,如果 start_num 大于 1,也会对跳过的字符进行计数。
如果 find_text 是空文本 (),则 FIND 则会返回数值1。
Find_text 中不能包含通配符。
如果 within_text 中没有 find_text,则 FIND返回错误值#VALUE!。
如果 start_num 不大于 0,则 FIND返回错误值#VALUE!。
如果 start_num 大于 within_text 的长度,则 FIND 返回错误值#VALUE!。
应用示例
A2=“广东省东莞市东城区…”,A3=“黑龙江省哈尔滨市…”; 对含有不同地方的数据,利用“Find”函数,非常简单地确定“省”出现的位置。
详细解释
公式“=FIND(省,A2)”中,“省”表示要查找的文本为“省”,(实际使用中,也可以很长的一串字符)。要找查找的对象是A2单元格的内容“广东省东莞市东城区…”,因为没有指定起始位置,所以系统从第一位开始。返回的“3”,表示“省“字在第三位。
而公式“=FIND(省,A3)”中,“黑龙江省哈尔滨市…”则返回4。
与Find类似,Search函数也有相同的功能。它们的区别是,Find区分大小写,而Search不分大小写(当被查找的文本为英文时)。
另外,在Excel中,对文本进行处理的很多函数都提供了一个特别用来处理双字节字符(如中文,日文)的函数,一般是在原函数后加“B”,如FIND,就有一个FINDB。LEFT,相对应的就是LEFTB等。其实,我们在实际应用中,使用不带“B”的函数就足够了。如果你想使用带“B”的函数,则要特别注意,尤其是在组合运用函数时,其中一个函数使用带“B”的形式,则其它有带“B”形式的函数,全部都要使用其带“B”的形式,否则结果极可能是错的。

相似回答