查找目录下的所有文件中是否含有某个字符串 linux.docx
文本预览下载声明
查找目录下的所有文件中是否含有某个字符串?find .|xargs grep -ri IBM?查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名?find .|xargs grep -ri IBM -l?1.正则表达式??? (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。?? (2)基本元字符集及其含义?????? ^ :只匹配行首。?? 如^a 匹配以a开头的行abc,a2e,a12,aaa,......?????? $ :只匹配行尾。?? 如^a 匹配以a结尾的行bca,12a,aaa,.......?????? * :匹配0个或多个此单字符。如(a)* 匹配空,a,aa,aaa,....?????? [] :只匹配[]内字符。可以是一个单字符,也可以是字符序列,用,将里面要匹配的不同字符串分开。也可以使用-来表示[]内字符序列的范围,如[1-5]表示[12345]?????? \ :只用来屏蔽一个元字符的特殊含义。如\*,\,\,\|,\+,\^,\. 等?????? .:(点)只匹配任意单字符。?????? pattern\{n\}:只用来匹配前面pattern出现的次数.n为次数。如a\{2\}匹配aa.?????? pattern\{n,\}:含义同上,但次数最少为n.如a\{2,\}匹配aa,aaa,aaaa,.....?????? pattern\{n,m\}:含义同上,但次数在n和m之间。如a\{2,4\}匹配aa,aaa,aaaa三个?? (3)举例说明:?????? ^$ :匹配空行?????? ^.$ :匹配包含一个字符的行???? \*\.pas :匹配以*.pas结尾的所有字符或文件???? [0123456789]或[0-9] :假定要匹配任意一个数字???? [a-z] :任意小写字母???? [A-Za-z] :任意大小写字母???? [S,s] :匹配大小写S???? [0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} :匹配IP地址 [0-9]\{3\}三个0-9组成的字符串;\. :匹配点(注意这里点是特殊的字符,所以要用\来屏蔽其含义)?2.find介绍 ? (1)查找具有某些特征文件的命令,可遍历当前目录甚至于整个文件系统来查看某些文件或目录,其遍历大的文件系统时一般放在后台执行。?? (2)find命令的一般形式?????? find pathname -options [-print -exec -ok]?????? -pathname :find命令所查找的目录路径。如用.来表示当前的目录,用/来表示系统根目录?????? -print :find命令将匹配的文件输出到标准输出?????? -exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的命令形式为???????? command{} \; (注意{}和\之间的空格)?????? -ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。???? options有如下几种:???? -name :按照文件名查找文件???? -perm :按照文件权限来查找文件???? -user :按照文件属主来查找文件???? -group :按照文件所属的组来查找文件???? -mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime 和-ctime选项,但它们都和-mtime选项相似。???? -size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。???? -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在???? -newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件???? -depth 先查找指定目录有无匹配文件,若无则再在子目录中查找???? -type 查找某一类型的文件,如?????? b :块设备文件?????? d:目录?????? e:字符设备文件?????? p;管道文件?????? l:符号链接文件?????? f:普通文件?? (3)find命令举例?????? find -name *.txt -print 查找txt结尾的文件并输出到屏幕上?????? find /cmd .sh -print 查找/cmd目录下所有sh文件,并输出?????? find . -p
显示全部