正则表达式

2018-08-06 09:00:37来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

第1章 正则表达式

1.1 正则表达式

查找文本内容,快速过滤

1.2 正则表达式分类

1.2.1 基础正则

^    以…...开头的行 ^m

$    以…...结尾的行 m$

^$   空行(什么符号都没有)

.     任意一个字符,不会匹配空行

\     (撬棍)转义字符

*     前一个字符连续出现0次或0次以上

.*     所有字符,包括空行

[]     相当于一个符号,每次匹配1个字符

[abc]  找出包含a或b或c

[^]    排除,排除[]里的每一个字符

[^abc] 找出除了a或除了b或除了c外

 

 

1.2.2 扩展正则

+     前一个字符连续出现1次或1次以上

|      或者

()     表示一个整体   sed反向引用/后向引用

{}       0{n,m} 数字0连续出现了至少n次,最多m次

?      前一个字符连续出现0次或1次   前一个字符有或没有

 

1.3 基础正则与扩展正则的区别

1.3.1 符号不同

基础正则: ^   $   ^$   .    .*    []    [^]

扩展正则: +   |   ()   {}   ?

 

1.3.2 支持的命令不同

基础正则:grep  sed  awk

扩展正则:egrep(grep  -E)    sed –r      awk

 

1.4 ^ 以....开头的行 ^m

 

[root@oldboyedu50-lnb /oldboy]# grep '^m'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

my god ,i am not oldbey,but OLDBOY!

 

1.5 $ 以….结尾的行  $

 

cat -A 显示文件中所有符号  每行结尾都会有个$

[root@oldboyedu50-lnb /oldboy]# grep  ' $'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

 

1.6 . 任意一个字符,不会匹配空行

[root@oldboyedu50-lnb /oldboy]# grep  '.' oldboy.txt

grep –o                                          grep命令执行过程

[root@oldboyedu50-lnb /oldboy]# grep -o '.' oldboy.txt

 

1.7 + 前一个字符连续出现1次或1次以上

[root@oldboyedu50-lnb /oldboy]# egrep '0+' oldboy.txt

my qq is 49000448

not 4900000448.

 

1.8 | 或者

[root@oldboyedu50-lnb /oldboy]# egrep 'oldboy|linux'   oldboy.txt

I am oldboy teacher!

I teach linux.

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

 

1.9 - () 表示一个整体  反向引用/后向引用

1.9.1 表示一个整体

[root@oldboyedu50-lnb /oldboy]# egrep 'oldb(o|e)y'  oldboy.txt

I am oldboy teacher!

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

my god ,i am not oldbey,but OLDBOY!

 

1.9.2 反向引用/后向引用

[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(.*)#<\1>#g'

<123456>                                                    \1 表示第一个括号

 

1.10 {} 0{n,m} 数字0连续出现了至少n次,最多m次

[root@oldboyedu50-lnb /oldboy]# egrep '0{3,4}' oldboy.txt

my qq is 49000448

not 4900000448.

 

[root@oldboyedu50-lnb /oldboy]# cat id.txt
211324198705244720500224197105168312

任 1231231231oldboy

任 3oldboy

任 lidao97303136098

任 alex2197303136098

任 350182197303oldgir

吕 211282199209113038150000198309176071371001197412221284130185200011215926362522198711278101

向 14052219961008852X

 

 

[root@oldboyedu50-lnb /oldboy]# egrep '[0-9X]{18}' id.txt
211324198705244720500224197105168312211282199209113038150000198309176071371001197412221284130185200011215926362522198711278101

   XXXXXXXXXXXXXXXXXX

向 14052219961008852X

 

[root@oldboyedu50-lnb /oldboy]# egrep '[0-9]{17}[0-9X]' id.txt
211324198705244720500224197105168312211282199209113038150000198309176071371001197412221284130185200011215926362522198711278101

向 14052219961008852X

 

第2章 取出eth0网卡的ip地址

2.1 方法1

[root@oldboyedu50-lnb /oldboy]# ip a s eth0 |awk 'NR==3'|awk  -F"[ /]+"  '{print $3}'

10.0.0.200

[root@oldboyedu50-lnb /oldboy]#

 

2.2 取出ifconfig eth0 ip地址和子网掩码

[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"[ :]+"  '{print $4,$NF}'

10.0.0.200 255.255.255.0

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:mail邮箱

下一篇:CentOS7.5修改字符集