13grep和正则表达式

grep:Global search REgular expression and Print out the line . 文本过滤工具,根据用户指定的模式对目标文本进行匹配检查;打印匹配到的行。过滤即不改变原来文本数据。

grep [options] PATTERN [file…]

–color=auto: 对匹配到的文本着色显示

-v:显示不被pattern匹配到的行

-i:忽略大小写

-n:显示匹配的行号

-c:统计匹配的行数

-o:仅显示匹配到的字符串

-q:静默模式,不输出任何模式

-A #:after,后#行一并显示

-B #:before,前#行一并显示

-C #:context,前后#行一并显示

-e:实现多个选择间的逻辑或关系–> grep -e ‘cat’ -e ‘dog’ file

grep的PATTERN 支持正则表达式,支持正则表达式的还有 vim,less,nginx等

正则表达式:regexp,由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能

正则表达式有基本正则表达式(BRE)和扩展正则表达式(ERE)两种,元字符分类则有四种:字符匹配、匹配次数、位置锚定和分组

字符匹配:

. 表示匹配任意单个字符

[] 表示匹配指定范围内的任意单个字符

[^] 表示匹配指定范围外的任意单个字符

[:alnum:] 字母和数字

[:alpha:] 英文字母

[:lower:] [:upper:]  大、小写字母

[:blank:] (空格和制表符tab)

[:space:] 垂直和水平的空白字符(比[:blank:]包含的范围广)

[:cntrl:] 不可打印的控制字符(退格、删除、警铃。。。)

[:digit:] [:xdigit:] 十进制数字,十六进制数字

[:graph:] 可打印的非空白字符

[:print:] 可打印的字符

[:punct:] 标点符号

匹配次数:

* 匹配前面的字符任意次,包括0次。在贪婪模式下:即尽可能长的匹配

.* 任意长度的任意字符

\? 匹配器前面的字符 0或1次

\+ 匹配其前面的字符至少一次

\{n\} 匹配前面的字符n次

\{m,n\}匹配其前面的字符至少m次,至多n次

位置锚定:

^ 行首锚定

$ 行尾锚定

^pattern 用于模式匹配整行 ^$ 空行  ^[[:space:]]*$  空白行

\<,\b 词尾锚定

\>,\b 词首锚定

\<pattern\> 匹配整个单词

分组:

\(\) 将一个或多个字符捆绑在一起当做一个整体进行处理,eg:\(root\)\+

分组括号中的的模式匹配到的内容会被正则表达式引擎记录与内部的变量中,这些变量的命名方式为:\1,\2,\3,…

\1 表示从坐骑第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符

示例:\(string1\+\(string2\)*\)

\1 :string1\+\(string2\)*

\2 :string2

后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本省

egrep及扩展正则表达式

egrep = grep -E 

egrep [options] pattern [file…]

扩展正则表达式的元字符:

字符匹配:

.

[]

[^]

次数匹配:

*

?

+

{m}

{m,n\}

位置锚定:

^

$

\<,\>,\b

分组:

()

后向引用:\1,\2…

或者:

a|b : a 或b

C|cat :C 或者cat

(C|c)at: Cat或者cat

—-joker的部落阁

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

(0)
jokerjoker
上一篇 2016-11-27
下一篇 2016-11-27

相关推荐

  • linux系统自动安装之PXE

    PXE(集成在网卡上的)预启动执行环境 (能够通过网络实现操作系统安装) PXE工作原理1、Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client2、Client向P…

    2018-01-16
  • 终于成为马帮的成员了

    终于成为马帮的成员了

    Linux干货 2016-09-18
  • AWK实现求和、平均数、最小值、最大值

    1.简单的按列求和]$ cat test123125126]$ awk ‘{sum += $1}END {print sum}’ test2.对符合某些条件的行,按列求和]$ cat  testaaa 123bbb 125aaa 123aaa 123ccc 126对文件test中 第一列为aaa的行求和]$ awk &#82…

    Linux干货 2017-04-09
  • grep虐我千百遍,我待grep如初恋

    N21第四周博客作业 1、  复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@Centos6 ~]# cp -r /etc/skel /home/tuser1 [root@Centos6 ~]#…

    Linux干货 2016-07-16
  • ​HA专题: Corosync+Pacemaker+drbd实现MySQL高可用

    HA专题: Corosync+Pacemaker+drbd实现MySQL高可用 前言 实验拓扑 实验环境 实验步骤 安装前准备工作 配置DRBD 配置MySQL 配置Corosync+Pacemaker 测试 我遇到的问题 总结 前言 上篇文章我们介绍了drbd的相关原理、编译安装、简单的实现. drbd虽然可以保证数据的可靠性但是我们上次的实现还…

    Linux干货 2016-04-13
  • 马哥教育网络班22期+第1周课程练习

    一、描述计算机的组成及其功能。 组成:CPU (运算器+控制器),存诸器(内存与硬盘),输入设备,输出设备。 运算器:对数据进行加工处理的部件(包括算述运算与逻辑运算)。 控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各部件协调的,一步步的完成各种操作。 存储器:计算机记忆或暂存数据的部件 输入设备:人机接口,负责输入信息(数据与指令)转成计算机…

    Linux干货 2016-08-15