【Linux基础】grep命令

1.简介

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

命令格式:grep [option] pattern file

2.常用参数与举例:

-e :  使用PATTERN作为模式。同时显示多个过滤条件的结果(-e和-E仅语法使用不同,结果一致)

//查看是否超频(cpu cores和siblings一致表示没有超频)
cat /proc/cpuinfo | grep -e "cpu cores"  -e "siblings" | sort | uniq
cat /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文件,重定向给grep
2)使用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 ^$

参考文档:

linux命令---grep命令

原文地址:https://www.cnblogs.com/badboy200800/p/10606305.html