9 grep & egrep & 正则表达式

grep

grep = Global search REgular expression and Print out the line

语法及用途

grep [OPTIONS] PATTERN [FILE...]

根据用户指定的“ PATTERN ”对FILE逐行进行匹配检查,打印匹配到的行;
PATTERN 是由正则表达式字符及文本字符所编写的过滤条件。

常用选项

参数 说明
–color=auto 对匹配到的文本着色显示;
-v 显示不能够被pattern匹配到的行;
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串;
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系(grep –e ‘cat ’ -e ‘dog’ file)
-w 整行匹配整个单词
-E 使用扩展正则表达式ERE,否则使用基本正则表达式BRE

正则表达式

基本正则表达式BRE

字符匹配

字符 含义
. 匹配任意单个字符;
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:digit:] 数字
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 字母
[:alnum:] 字母与数字
[:punct:] 标点
[:space:] 空字符或tab

匹配次数

用在要指定次数的字符后面,用于指定前面的字符要出现的次数
字符 含义
* 匹配前面的字符任意次,包括0次(贪婪模式:尽可能长的匹配)
.* 任意长度的任意字符
? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{m\} 匹配前面的字符m次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{m,\} 匹配前面的字符至少m次

位置锚定

定位出现的位置
字符 含义
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或 \b 词首锚定,用于单词模式的左侧
\> 或 \b 词尾锚定;用于单词模式的右侧
\<PATTERN\> 匹配整个单词

分组

\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理,如:\(root\)\+
分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, ...
    \1: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符;
        实例: \(string1\+\(string2\)*\)
              \1: string1\+\(string2\)*
              \2: string2
后向引用:引用前面的分组括号中的模式所匹配字符(而非模式本身),即\1引用的第一个匹配到的结果,而非模式。

扩展正则表达式ERE

要使用扩展正则表达式,需要使用egrep或grep -E命令,如下所示:
egrep = grep -E
egrep [OPTIONS] PATTERN [FILE...]

字符匹配

字符 含义
. 任意单个字符
[] 指定范围的字符
[^] 不在指定范围的字符

次数匹配

字符 含义
* 匹配前面字符任意次
? 0或1次
+ 1次或多次
{m} 匹配m次
{m,n} 至少m,至多n次

位置锚定

字符 含义
^ 行首
$ 行尾
\<, \b 语首
\>, \b 语尾

分组

() 后向引用:\1, \2, …

或者

a|b 

C|cat    :C 或 cat 

(C|c)at  :Cat 或 cat


练习

  1. 显示/proc/meminfo信息中以s或S开头的信息

image1.png

  1. 显示rpc用户所使用的shell类型

image2.png

  1. 查看/etc/passwd中出现的2~3位数字

image3.png

  1. 查看/etc/grub2.cfg中以空白开始的非空行

image4.png

  1. 查看/etc/passwd 中用户名与shell同名的用户信息

image5.png

  1. 显示当前系统root、mage或wang用户的UID和默认shell

image6.png

  1. 找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

image7.png

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

image8.png

  1. 使用egrep取出上面路径的目录名

image9.png

  1. 统计以root身份登录的每个远程主机IP地址的登录次数

image10.png

  1. 利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255

0-9     :   [0-9]
10-99   :   [1-9][0-9]
100-199 :   1[0-9]{2}
200-249 :  2[0-4][0-9]
250-255 :  25[0-5]
  1. 显示ifconfig命令结果中所有IPv4地址

12.png


  1. [😒pace:] 

原创文章,作者:taobaibai,如若转载,请注明出处:http://www.178linux.com/31646

(0)
上一篇 2016-08-10 10:27
下一篇 2016-08-10 10:27

相关推荐

  • Linux Services and Security–part2

    一、请描述一次完整的http请求处理过程 (1).建立或处理连接:接收请求或拒绝请求; (2).接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; 接收请求的模型: 并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求;这意味着,一次只能处理一个请求,多个请求被串行响应; 多进程I/O结构:并行启动多个进程,每个进程响应一个请…

    Linux干货 2017-11-13
  • VIM Note

    vim总结: 模式:编辑模式 插入模式 末行模式 内置命令行接口 打开文件 vim +# 打开文件后直接处于文件的#行行首 +/PATTER 打开文件后直接处于第一个被PATTER匹配到行的行首 + 直接处于尾行行首 模式转换 编辑模式:默认模式,打开文件后处于编辑模式 编辑模式–>插入模式: i: insert 光标所在地方输入 a:append 在…

    Linux干货 2017-08-14
  • iptables介绍和使用

    iptables/netfilter:    Packets Filter Firewall:          包过滤型防火墙:  Firewall:隔离工具,工作于主机或网络的边缘处,对经由的报文根据预先定义的规则(识别标准)进行检测,对于能够被规则匹配到的报文实行…

    Linux干货 2017-04-29
  • 2016/08/07:文本处理工具及正则表达式

      在本次课程中,本以为和前面的内容难度差不多,内心毫无提防,但在做随堂练习的时候,被惨虐,不由得使我想起了高三时候拿到一张数学单元练习题,一道题也不会做的那种感觉,无助,彷徨,不甘。到了晚上总结了一下,还是有缘由可寻的。直接原因就是前面知识记得不牢固,也并未完全理解是和意思,尤其是tr命令,适用于何处,没按照5W1H方法来进行总结学习,导致应用的…

    Linux干货 2016-08-07
  • NoSQL理论基础及安装、基本操作

    30分钟开始 分布式系统理论: CAP: 一致性 可用性 分区容错性     MongoDB: 安装 crud 索引 副本集 分片   NoSQL:非关系型、分布式、不提供ACID功能 技术特点: 1、简单数据模型 2、元数据和应用数据分离(分不同服务器存储) 3、弱一致性   优势: 1、避免不必要的复杂性 2、高吞…

    2016-11-27
  • Mariadb基于ssl的主从复制

    Mariadb基于ssl的主从复制 一、前言 备份数据库是生产环境中的首要任务,重中之重。一般配置中mariadb的主从传输是明文传输,但是有时候对一些特殊业务来说是不允许的,为了保证数据在传输过程中的安全性,因此使用基于SSL的复制会大大加强数据的安全性。 二、准备工作 1、实验系统环境: CentOS7.2,SELinux关闭,iptables关闭,安装…

    Linux干货 2017-02-24