简介

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep基本用法

  • 格式

        grep [options]


  • 主要参数

      [options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。

  • grep命令使用练习(正则表达

1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式)

[root@Centos7 ~]#  grep  '^[Ss]' /proc/meminfo

[root@Centos7 ~]# grep  -i  '^s' /proc/meminfo

wKiom1l92wPB1qkfAAA1aDH3OFA409.png-wh_50

2、显示三个用户root、mage、wang的UID和默认shell

[root@Centos7 ~]# cat /etc/passwd|egrep "^(root|mage|wang)\>" | cut -d : -f1,3,7

wKiom1l93AezPfMzAAAYkNvFT78682.png-wh_50

3、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行[root@Centos7 ~]# egrep "[_[:alpha:]]+\(\)" /etc/rc.d/init.d/functions   

wKiom1l93FqBon3VAABUs0xSlLY259.png

4、使用egrep取出/etc/rc.d/init.d/functions中其基名

[root@Centos7 ~]# echo "/etc/rc.d/init.d/functions" | egrep -o "[^/]+/?$"

wKioL1l93Z2RmPpjAAAcY4rRxWQ095.png

5、使用egrep取出上面路径的目录名

[root@Centos7 ~]# echo "/etc/rc.d/init.d/functions/" | egrep -o "/.*[^/]" | egrep -o "/.*/"

wKiom1l93jqjo5sPAAAVkFjrJcA930.png

6、显示ifconfig命令结果中所有IPv4地址

[root@Centos7 ~]# ifconfig | egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

wKioL1l93viB8X4JAAAucWgx6OA993.png