Linux学习笔记:Shell基础正则表达式

Shell中经常用到正则表达式的命令包括grep、sed、awk

用于测试的文件内容

[root@vmtest ~]# vi testfile 

Current Network Status

Last Updated: Mon Feb 15 10:55:06 CST 2016

Updated every 90 seconds

Nagios Core 4.1.1 - www.nagios.org

Logged in as admin


I like google

It's Google, not GOOOOOGLE;

基础正则表达式里的一些特殊符号

1)^word    代表以单词word开头的行

        [root@vmtest ~]# grep ^I testfile 

        I like google

        It's Google, not GOOOOOGLE;

2)word$    代表以单词word结尾的行

        [root@vmtest ~]# grep s$ testfile   

        Current Network Status

        Updated every 90 seconds


3).      点号代表一个任意字符(包括空格)

        [root@vmtest ~]# grep t.G testfile        

        It's Google, not GOOOOOGLE;

        

4)\      斜杠代表转义字符,把所有含有特殊含义的符号都转回它们本身的字符(包括\自身)

         [root@vmtest ~]# grep "\." testfile

         Nagios Core 4.1.1 - www.nagios.org

5)*       代表前一个字符出现任意次数

        [root@vmtest ~]# grep "o*g" testfile  

        Nagios Core 4.1.1 - www.nagios.org

        Logged in as admin

        I like google

        It's Google, not GOOOOOGLE;

        这个例子中,第一行仅命中g,因为o可以出现任意次数,包括0次

6).*        匹配所有字符,包括空行。

        [root@vmtest ~]# grep ".*" testfile

        Current Network Status

        Last Updated: Mon Feb 15 10:55:06 CST 2016

        Updated every 90 seconds

        Nagios Core 4.1.1 - www.nagios.org

        Logged in as admin

        

        I like google

        It's Google, not GOOOOOGLE;

7)[]        匹配中括号里所有字符的任意一个

        [root@vmtest ~]# grep "[NO]" testfile  

        Current Network Status

        Nagios Core 4.1.1 - www.nagios.org

        It's Google, not GOOOOOGLE;

8)[^CHARS]    CHARS可以是多个字母或者范围,不匹配范围内的任意字符。注意,这是字母,不是单词

        [root@vmtest ~]# grep "[^G]oo" testfile   

        I like google

9){n,m}        限制前一个字符出现的次数。使用时需要加\转义

        [root@vmtest ~]# grep "o\{2,3\}" testfile   #当仅使用时,尽管限制了2到3次,但所有都出来了

        I like gooogle

        not gooooooogle

        It's Google, not GOOOOOGLE;

        [root@vmtest ~]# grep "go\{2,3\}gle" testfile #当用其他字母夹着来用,则能实现重复出现的次数

        I like gooogle

        还有{n,}和{n},前者代表至少出现n次,后者代表准确出现的次数


你可能感兴趣的:(shell,学习笔记,基础正则)