为处理大量的字符串而定义的一套规则和方法

1)linux正则表达式以行为单位处理

2)alians grep = “grep –color=auto”,让匹配的内容显示颜色

3)注意字符集,export LC_ALL=C

[root@pyrene ~]# alias grep='grep --color=auto'

[root@pyrene ~]# export LC_ALL=C

[root@pyrene ~]# echo $LC_ALL      --检查字符集是否正确

C

一、正则表达式第一波字符说明

1)^word  匹配word开头的内容  vim里面的^代表一行的开头

[root@pyrene ~]# grep "^m" oldboy.log

my blog is http://www.cnblogs.com

my qq is 3110436742

my god ,i am not p but pyrene

2)word$   匹配以word结尾的内容,  vim里面的$代表一行的结尾

[root@pyrene ~]# grep "m$" oldboy.log

my blog is http://www.cnblogs.com

3)^$  代表空行

[root@pyrene ~]# grep -n "^$" oldboy.log   这里-n显示行号

3:

7:

二、基础正则表达式第二波字符说明

4).  代表且只能表示任意一个字符

5)\  转移符号,让有特殊身份意义的字符脱掉马甲

6)*  重复0个或者多个前面的一个字符

7).*  匹配所有字符

[root@pyrene ~]# grep -n "." oldboy.log

1:i am pyrene and

2:i like linux

4:i like badminton ball . billiard ball and chinese chess!

5:my blog is http://www.cnblogs.com

6:my qq is 3110436742

8:my god ,i am not p but pyrene

[root@pyrene ~]# grep -n ".*" oldboy.log

1:i am pyrene and

2:i like linux

3:

4:i like badminton ball . billiard ball and chinese chess!

5:my blog is http://www.cnblogs.com

6:my qq is 3110436742

7:

8:my god ,i am not p but pyrene

三、第三波正则字符说明

8)[abc]  匹配字符集合内任意一个祖父[a-zA-Z],[0-9]

9)[^abc]  匹配不包含^后的任意一个字符的内容

中括号里的^为取反,注意和中括号外面的以…开头的区别

[root@pyrene ~]# grep "[abc]" oldboy.log

i am pyrene and

i like badminton ball . billiard ball and chinese chess!

my blog is http://www.cnblogs.com

my god ,i am not p but pyrene

[root@pyrene ~]# grep "[^abc]" oldboy.log

i am pyrene and

i like linux

i like badminton ball . billiard ball and chinese chess!

my blog is http://www.cnblogs.com

my qq is 3110436742

my god ,i am not p but pyrene

10) a\{n,m\} 重复a  n到m次,前一个重复的字符,如果要用egrep /sed –r可以去掉斜线

a\[n,\] 重复a至少n次前一个重复的字符

a\{n\} 重复a  n次

a\{,m\}????

注意egrep或者sed –r过滤一般特殊字符可以不转义

[root@pyrene ~]# grep "0\{0,\}" oldboy.log

i am pyrene and

i like linux

i like badminton ball . billiard ball and chinese chess!

my blog is http://www.cnblogs.com

my qq is 3110436742

my god ,i am not p but pyrene

 

扩展正则表达式

1)+  表示重复一个或一个以上前面的字符

[root@pyrene ~]# grep -E "go+d" oldboy.log

my god ,i am not p but pyrene

2)?  表示重复0个或者1个前面的字符

3)|  表示同时过滤多个字符串

[root@pyrene ~]# egrep "3306|1521" /etc/services

mysql           3306/tcp                        # MySQL

mysql           3306/udp                        # MySQL

ncube-lm        1521/tcp                # nCube License Manager

ncube-lm        1521/udp                # nCube License Manager

4)()   后向引用,分组过滤

七 、linux正则表达式的更多相关文章

  1. linux正则表达式之-基础正则表达式(基于grep)

    linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...

  2. 关于清晰讲解linux正则表达式的博文分享

    http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html  linux shell 正则表达式(BREs,EREs,PREs)差异比 ...

  3. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

  4. 【Linux】linux正则表达式及通配符

    正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.拥有强大的字符搜索功能.也非常方便的搜索过滤出我们想要的内容. linux正则表达式分为基本正则表达式(Basic Regexp)和扩展 ...

  5. Linux 正则表达式_010

    Linux 正则表达式 标注:本教程只针对linux运维的三剑客命令awk,sed,grep正则表达式 什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法通过定义的这 ...

  6. linux正则表达式(基础正则表达式+扩展正则表达式)

    正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...

  7. linux 正则表达式和通配符

    linux 正则表达式和通配符 通配符用于查找文件 包含三种:  * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...

  8. Python爬虫入门七之正则表达式

    在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...

  9. (转)linux正则表达式详解

    linux正则表达式详解 http://blog.csdn.net/wuliowen/article/details/64131815 1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法 ...

随机推荐

  1. python django -1

    VT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示model,负责与数据库交互 v表示view,是核心,负责接收请求.获取数据.返回结果 t表示templa ...

  2. MySQL中的聚合函数

    创建student表 CREATE TABLE IF NOT EXISTS `student` ( `id` int(4) unsigned NOT NULL AUTO_INCREMENT, `nam ...

  3. 详解 比特(位,bit),字节(Byte),字符的区别 *(转)

    比特(位):英文bit,是计算机晶体管的一种状态(通电与断电).就是0与1,真与假,是计算机最基本的传输单位. 示例: 2bit : 10; 4bit : 1111; 8bit : 1111 1111 ...

  4. HTML5新增的语义标签和IE版本低的兼容性问题

    <!DOCTYPE html><html> <head> <!-- HTML5中浏览器兼容(较低版本的IE浏览器不支持H5的布局):需要在<head&g ...

  5. boost::lockfree::queue

    #include <boost/thread/thread.hpp> #include <boost/lockfree/queue.hpp> #include <iost ...

  6. conda 和 pip 安装,更新,删除

    安装: pip install xxx conda install xxx 更新: pip  install --upgrade xxx conda update xxx 删除: pip uninst ...

  7. [转]JavaWeb之 Servlet执行过程 与 生命周期

    https://www.cnblogs.com/vmax-tam/p/4122105.html Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类 ...

  8. 01-K Code

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  9. BigDecimal使用整理

    BigDecimal使用整理 一.     BigDecimal简介 计算机计算中无论是float还是double都是浮点数,由于计算机是二进制的,导致在在浮点数计算时会出现精度丢失,因此引入BigD ...

  10. W5100硬件设计和调试要点

    文章来源:成都浩然 与MCU的接口 W5100与MCU接口採用并行总线方式(假设要使用SPI接口,建议採用W5200),因此W5100与MCU的接口设计相对简单.以AT89C52为例,例如以下图所看到 ...