与正则表达式的第一次亲密接触

Linux文本处理三剑客

  • grep:文本过滤(模式:psttern)工具

    grep,egrep,fgrep (不支持正则表达式搜索)

  • sed:stream editor,文本编辑工具

  • awk:Linux上的实现gawk,文本报告生成器

下面就先谈一谈:grep及正则表达式;egrep及扩展的正则表达式

grep

  • grep:Goobal search REgular expression and Print out the line

    作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行

    模式:用正则表达式字符及文本字符所编写的过滤条件

grep命令选项
  • –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
  • -F:相当于fgrep,不支持正则表达式

正则表达式

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

基本正则表达式元字符
元字符 定义
^ 位置锚定:行首
$ 位置锚定:行尾
. 任意单一字符
[ ] [ ]内任意单一字符
[^] 除[ ]内任意单一字符
* *前面字符重复不确定次数
+ +前面字符重复一次以上不确定次数
? ?前面字符重复0或1次
\ 转义符
.* 任意长度字符
{n} 前面字符重复n次
{n,} 前面字符重复n次以上
{m,n} 前面字符重复m次和n次之间
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即A-Z,a-z
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 水平空白字符(空格和制表符)
[:space:] 所有水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格,删除,警铃…)
[:digit:] 十进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
[:xdigit:] 十六进制数字

egrep

  • egrep = grep -E
  • egrep [OPTIONS] PATTERN [FILE…]
扩展的正则表达式的元字符
元字符 定义
. 任意单个字符
[ ] 指定范围的字符
[^] 不在指定范围的字符
* 匹配前面字符任意次
? 0或1次
+ 1次或多次
{m} 匹配m次
{m,n} 匹配至少m次,之多n次
^ 位置锚定:行首
$ 位置锚定:行尾
<,\b 位置锚定:词首
>,\b 位置锚定:词尾
( ) 分组
\1,\2 后向引用
学之前是拒绝的,学之后是懵逼的。

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

(0)
XIAJIDONGXIAJIDONG
上一篇 2017-04-06 20:12
下一篇 2017-04-06 23:28

相关推荐

  • 基于keepalived实现高可用nginx服务

    基于keepalived实现高可用nginx服务 环境及配置前提说明 主机1,ip:192.168.25.140 运行web服务 主机2,ip:192.168.25.141 运行web服务 主机3,ip:192.168.25.138 运行nginx服务和keepalived服务 主机4,ip:192.168.25.139 运行nginx服务和keepaliv…

    Linux干货 2016-11-07
  • LVS详解

    LVS详解 LVS(Linux Virtual Server),意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 LVS 是一个工作在四层的负载均衡器,实现和 iptables/netfilter 类似,工作在内核空间的 TCP/IP 协议栈上,LVS 工作在 INPUT H…

    Linux干货 2016-11-11
  • LAMP搭建wordpress博客站点

    使用WordPress可以搭建功能强大的网络信息发布平台,但更多的是应用于个性化的博客。针对博客的应用,WordPress能让您省却对后台技术的担心,集中精力做好网站的内容。本文将教您如何通过LAMP搭建自己的wordpress博客站点。 LAMP听起来很高大上,其实是集中技术合起来的称呼: L:linux A:apache httpd M:mysql、ma…

    2017-06-01
  • sed工具

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来…

    2017-08-26
  • 冥界之王-第8周作业

       1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,        &nbs…

    Linux干货 2016-10-23
  • shell编程

       编程基础   编程基础:       编程:也就是程序+数据           程序编程风格:                  过程式:以指…

    Linux干货 2016-08-15

评论列表(1条)

  • renjin
    renjin 2017-04-12 11:30

    详细介绍了正则表达式的知识点,内容写的很不错,排版也很好