3.shell脚本中常用命令(1)-grep文本过滤命令

1.什么是grep正则表达式?

grep:就是用来对文本内容进行过滤的命令
正则表达式:就是一套处理大量的字符串而定义的规则和方法。
通过正则表达式这些特殊字符号,可以快速的过滤、替换需要的内容。
正则表达式分为两种:基本正则表达式扩展正则表达式
3.shell脚本中常用命令(1)-grep文本过滤命令_第1张图片

2.grep命令

参数 作用
-v 排除匹配的内容
-i 忽视大小写
-o 只显示匹配的内容
-n 显示行号
--color=auto 显示匹配颜色
-E 支持扩展的正则表达式

3.shell脚本中常用命令(1)-grep文本过滤命令_第2张图片
以下用实例来演示各参数的作用:
原文件内容如下
3.shell脚本中常用命令(1)-grep文本过滤命令_第3张图片

命令 说明
grep root passwd 过滤passwd文件中含有root的信息

3.shell脚本中常用命令(1)-grep文本过滤命令_第4张图片

命令 说明
grep -E "root|ROOT" passwd (不区分大小写)过滤含有root的信息
grep -Ei "root" passwd (不区分大小写)过滤含有root的信息
grep -Ei "^root" passwd (不区分大小写)过滤以root开头的信息
grep -Ei "root$" passwd (不区分大小写)过滤以root结尾的信息
grep -Ei "^root|root$" passwd (不区分大小写)过滤以root开头或结尾的信息
grep -Ei "^root|root$" passwd -v (不区分大小写)过滤root不在开头或结尾的信息(不一定含有root)
grep -Ei "^root|root$" passwd -v | grep root (不区分大小写)过滤root在中间的信息

3.shell脚本中常用命令(1)-grep文本过滤命令_第5张图片
3.shell脚本中常用命令(1)-grep文本过滤命令_第6张图片
3.shell脚本中常用命令(1)-grep文本过滤命令_第7张图片

命令 说明
grep ROOT passwd -n 显示含有ROOT的行的行号
grep ROOT passwd -n1 显示含有ROOT的行和其上下各一行以及它们行号
grep ROOT passwd -1 显示含有ROOT的行和其上下各一行
grep ROOT passwd -A1 显示含有ROOT的行和其下一行
grep ROOT passwd -B1 显示含有ROOT的行和其上一行

3.shell脚本中常用命令(1)-grep文本过滤命令_第8张图片

3.正则表达式(Basic regular expression)

3.shell脚本中常用命令(1)-grep文本过滤命令_第9张图片

字符 说明
^ 例如 ^word—以word开头的内容
$ 例如 word$—以word结尾的内容
^$ 空行
^.* 任意多个字符开头
. 表示且只能代表任意一个字符(当前目录,加载文件)
\ 转移字符,让有特殊身份的字符保持原意不变
\< 以该字符串开头(防止贪婪模式)
\> 以该字符串结尾(防止贪婪模式)

注意:grep 要对{}转义 ,egrep (或grep -E )不需要转义
grep命令不能识别一些特殊符号(如|,?,(),*,+等 ),而egrepgrep -E可识别扩展符号
-E有些时候用grep会搜索不出来,但要搜索的内容里面实际上是存在的,此时我们就要加上扩展正则

4.扩展正则表达式

3.shell脚本中常用命令(1)-grep文本过滤命令_第10张图片

5.grep中字符的匹配位置设定和匹配次数设定

(1)grep中字符的匹配位置设定

参数 说明
^关键字 以该字符开头
关键字$ 以该字符结尾
\<关键字 以该字符串开头
关键字\> 以该字符串结尾
\<关键字\> 匹配该字符串

3.shell脚本中常用命令(1)-grep文本过滤命令_第11张图片

(2)grep中字符的匹配次数设定

参数 说明
* 字符出现[0-任意次]
.* 关键字之间匹配任意字符
? 字符出现[0-1次]
+ 字符出现[1-任意次]
{n\} 字符出现[n次]
{m,n\} 字符出现[最少m次,最多n次]
{0,n\} 字符出现[0-n次]
{m,\} 字符出现[至少m次]
(xy\)\{n\}xy 关键字出现[n次]
[a-z] 匹配字符集合内任意一个字符[a-z]
[^abc] ^在中括号内表示非,即不包含a或者b或者c

3.shell脚本中常用命令(1)-grep文本过滤命令_第12张图片
3.shell脚本中常用命令(1)-grep文本过滤命令_第13张图片
3.shell脚本中常用命令(1)-grep文本过滤命令_第14张图片
3.shell脚本中常用命令(1)-grep文本过滤命令_第15张图片
3.shell脚本中常用命令(1)-grep文本过滤命令_第16张图片

你可能感兴趣的:(Shell)