一、grep命令和正则表达式的简介

1、grep(Global search REgular expression and Print out the line),即全局搜索正则表达式并打印出匹配的行,它是Linux系统中一个强大的文本搜索工具,它根据用户指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行;

2、正则表达式是由一类字符书写的模式,其中有些字符不表示符的字面意义,而是表示控制或通配的功能


二、grep命令的基本语法格式

grep [OPTION]... 'PATTERN' FILE...
grep的常用选项:
    -v : 对匹配的行进行取反
    -o : 仅显示匹配到的内容
    -i : 忽略字符大小写
    -n : 为匹配的行加上行号
    -E : 使用扩展正则表达式 ,等同于egrep命令
    -F : 不使用正则表达式搜索,等同于fgrep命令
    -A # : 连同匹配行的下#行一并显示,#代表任意数字
    -B # : 连同匹配行的上#行一并显示,#代表任意数字
    -C # : 连同匹配行的上下#行一并显示,#代表任意数字
    --color=auto : 对匹配的内容以不同的颜色显示


三、grep正则表达式的基本用法


基本正则表达式:

1、字符匹配

.:匹配任意单个字符

例如:匹配以r开头,t结尾中间只隔了两个字符的行
[root@localhost ~]# grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@localhost ~]#


[]:匹配指定集合中的任意单个字符

常用的集合表示方法有:
    纯数字:[[:digit:]]或[0-9]
    小写字母:[[:lower:]]或[a-z]
    大写字母:[[:upper:]]或[A-Z]
    大小写字母:[[:alpha:]]或[a-zA-Z]
    数字加字母:[[:alnum:]]或[0-9a-zA-Z]
    空白字符:[[:space:]]
    标点符号:[[:punct:]]
例如:匹配包含数字0或2的行