grep来自于英文词组globalsearchregularexpressionandprintouttheline的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。 与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令,那么egrep则是扩展搜索命令,等价于grepE命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于grepF命令,不支持正则表达式,直接按照字符串内容进行匹配。 语法格式:grep〔参数〕文件 常用参数: i 忽略大小写 c 只输出匹配行的数量 l 只列出符合匹配的文件名,不列出具体的匹配行 n 列出所有的匹配行,显示行号 h 查询多文件时不显示文件名 s 不显示不存在、没有匹配文本的错误信息 v 显示不包含匹配文本的所有行 w 匹配整词 x 匹配整行 r 递归搜索 q 禁止输出任何结果,已退出状态表示搜索是否成功 b 打印匹配行距文件头部的偏移量,以字节为单位 o 与b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 F 匹配固定字符串的内容 E 支持扩展的正则表达式 参考实例 搜索某个文件中,包含某个关键词的内容:〔rootlinuxcool〕greprootetcpasswdroot:x:0:0:root:root:binbashoperator:x:11:0:operator:root:sbinnologin 搜索某个文件中,以某个关键词开头的内容:〔rootlinuxcool〕greprootetcpasswdroot:x:0:0:root:root:binbash 搜索多个文件中,包含某个关键词的内容:〔rootlinuxcool〕greplinuxprobeetcpasswdetcshadowetcpasswd:linuxprobe:x:1000:1000:linuxprobe:homelinuxprobe:binbashetcshadow:linuxprobe:69Av41hCM17T2PrThoggWJ3Jj6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7::: 搜索多个文件中,包含某个关键词的内容,不显示文件名称:〔rootlinuxcool〕grephlinuxprobeetcpasswdetcshadowlinuxprobe:x:1000:1000:linuxprobe:homelinuxprobe:binbashlinuxprobe:69Av41hCM17T2PrThoggWJ3Jj6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7::: 输出在某个文件中,包含某个关键词行的数量:〔rootlinuxcool〕grepcrootetcpasswdetcshadowetcpasswd:2etcshadow:1 搜索某个文件中,包含某个关键词位置的行号及内容:〔rootlinuxcool〕grepnnetworkanacondaks。cfg17:networkbootprotostaticdeviceens160ip192。168。10。10netmask255。255。255。0onbootoffipv6autoactivate18:networkhostnamelinuxcool。com 搜索某个文件中,不包含某个关键词的内容:〔rootlinuxcool〕grepvnologinetcpasswdroot:x:0:0:root:root:binbashsync:x:5:0:sync:sbin:binsyncshutdown:x:6:0:shutdown:sbin:sbinshutdownhalt:x:7:0:halt:sbin:sbinhaltlinuxprobe:x:1000:1000:linuxprobe:homelinuxprobe:binbash 搜索当前工作目录中,包含某个关键词内容的文件,未找到则提示:〔rootlinuxcool〕greplrootanacondaks。cfggrep:Desktop:Isadirectorygrep:Documents:Isadirectorygrep:Downloads:Isadirectoryinitialsetupks。cfggrep:Music:Isadirectorygrep:Pictures:Isadirectorygrep:Public:Isadirectorygrep:Templates:Isadirectorygrep:Videos:Isadirectory 搜索当前工作目录中,包含某个关键词内容的文件,未找到不提示:〔rootlinuxcool〕grepslrootanacondaks。cfginitialsetupks。cfg 递归搜索,不仅搜索指定目录,还搜索其内子目录内是否有关键词文件:〔rootlinuxcool〕grepsrlrootetcetcfstabetcX11xinitXclientsetcX11xinitxinitrcetclibreportevents。dcollectdnf。confetclibreportevents。dbugzillaanacondaevent。confetclibreportforbiddenwords。conf省略部分输出信息 搜索某个文件中,精准匹配到某个关键词的内容(搜索词应与整行内容完全一样才会显示,有别于一般搜索):〔rootlinuxcool〕grepxcdanacondaks。cfg〔rootlinuxcool〕grepxcdromanacondaks。cfgcdrom 判断某个文件中,是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含),方便在Shell脚本中判断和调用:〔rootlinuxcool〕grepqlinuxprobeanacondaks。cfg〔rootlinuxcool〕echo?0〔rootlinuxcool〕grepqlinuxcoolanacondaks。cfg〔rootlinuxcool〕echo?1 搜索某个文件中,空行的数量:〔rootlinuxcool〕grepcanacondaks。cfg6