linux中grep命令的用法实例 grep与find的区别?
grep与find的区别?
使用linux时,经常需要查找文件。其中find和grep是主要命令。这两个命令有所不同。
差异:
(1)查找命令是根据文件的属性进行查找,如文件名、文件大小、所有者、所属组、是否为空、访问时间、修改时间等。
(2)grep根据文件的内容进行搜索,按照给定的模式匹配文件的每一行。
以下是对两者区别的详细解释:
查找命令:
基本格式:findpath表达式
1.按文件名搜索
(1)find/-name #在根目录中查找文件,也就是搜索整个硬盘。
(2)在/etc目录中找到/etc-name #文件。
(3)find /etc -name #39*srm*#39#使用通配符*(0或任何倍数)。意思是用字符串 SRM 在/etc目录下的文件名中。
(4)寻找。-name #39srm*#39 #表示查找文件名以字符串 SRM 在当前目录中。
2.根据文件特征搜索
(1)find/-amin -10 #查找系统中最近10分钟内访问过的文件(访问时间)。
(2)find/-atime -2#查找系统中最近48小时内访问过的文件。
(3)find/-empty #查找系统中为空的文件或文件夹。
(4)find/-group cat#查找系统中组为cat的文件。
(5)find/-mmin -5#在系统中查找最近5分钟内修改的文件(修改时间)
(6)find/-mtime -1 #查找系统中最近24小时内修改的文件。
(7)find/-user fred #在系统中查找属于用户fred的文件。
(8)find/-size 10000c #找出大于10000000字节的文件,(c:字节,w:,: KB,M:MB,: GB)。
(9)find /-size -1000k#找出小于1000KB的文件。
3.使用混合搜索方法查找文件
参数是:!,-和(-a),-或(-o).
(1)find /tmp -size 10000c -aNd -mtim:。
基本格式:查找表达式
1.主要参数
[选项]主要参数:
-c:只输出匹配行数。-i:不区分大小写。
-h:查询多个文件时不显示文件名。
-l:查询多个文件时,只输出包含匹配字符的文件名。
-n:显示匹配的行和行号。
-s:不显示不存在或没有匹配文本的错误消息。
-v:显示不包含匹配文本的所有行。
模式正则表达式的主要参数:
:忽略正则表达式殊字符的本义。
:匹配正则表达式的起始行。
$:匹配正则表达式的结束行。
Lt:从匹配正则表达式的那一行开始。
Gt:匹配正则表达式的行尾。
【】:单字符,如【A】,即A符合要求。
[-]: range,比如[A-Z],即A,B,C,Z都满足要求。
。:所有单个字符。
*:有字符,长度可以为0。
第二步:例子
(1)grep #39test#39 d*#显示以d开头的文件中包含test的所有行
(2)grep ;测试与测试。;aabbcc #显示aa、bb和cc文件中包含测试的行。
(3)grep ;{ 5 } aa #显示包含每行至少有5个连续小写字符的字符串的所有行。
(4)grep magic /usr/src#显示/usr/src目录(不包括子目录)中的文件包含魔线。
(5)grep -r magic /usr/src#显示包含magic的/usr/src目录下的文件(包括子目录)中的行。
(6)grep -w模式文件:只匹配整个单词,不匹配部分字符串(如matching 魔术与表演。;而不是 神奇的 )
linux grep 消耗性能吗?
消耗性能,因为grep命令用于在文件中查找合格的字符串。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。