1.简介
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
命令格式:grep [option] pattern file
2.常用参数与举例:
-e : 使用PATTERN作为模式。同时显示多个过滤条件的结果(-e和-E仅语法使用不同,结果一致)
//查看是否超频(cpu cores和siblings一致表示没有超频)cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniqcat /proc/cpuinfo | grep -E "cpu cores|siblings" | sort | uniq
-i : 搜索时候忽略大小写(默认情况区分大小写)
//查看逻辑CPU的个数cat /proc/cpuinfo| grep -i "processor"| wc -l
-n: 显示输出加行号
//查看逻辑CPU的个数(显示匹配行号)cat /proc/cpuinfo| grep -ni "processor"| wc -l
-v: 反转匹配,选择没有被匹配到的内容。
find . -name ".log" | grep -i error | grep -vi "info"1)使用find -name 来列出所有log文件,重定向给grep2)使用grep -i 来查找包含error的行3)使用grep -vi 来查找不包含info的行
-o: 只输出匹配的具体字符串,匹配行中其他内容不会输出。如下例子,只会输出ht
-w:匹配整词,精确地单词,单词的两边必须是非字符符号(即不能是字母数字或下划线),如匹配‘magic’,而不是‘magical’。
//查看CPU是否支持超频cat /proc/cpuinfo | grep -i "flag" |grep -wo ht
-A num:匹配到搜索到的行以及该行下面的num行
-B num:匹配到搜索到的行以及该行上面的num行
-C num:匹配到搜索到的行以及上下各num行
//输出内存槽信息,输出匹配字符串所在行及下面16行dmidecode |grep -A16 "Memory Device$"
-m num:当匹配内容的行数达到num行后,grep停止搜索,并输出停止前搜索到的匹配内容
//显示匹配的第一个内存插槽信息dmidecode |grep -A16 -m 1 "Memory Device$"
3.与正则表达式结合举例
^ 代表以***开头,$代表以***结尾,^$代表空行。
//输出以d开头的行ls -l | grep -i ^d//输出不以d开头的行,[]外边^代表以***开始,[]内的^代表反向选择ls -l | grep -i ^[^d]//输出以d结尾的行ls -l | grep -i d$//输出空行行号ls -l | grep -n ^$
参考文档: