您的位置:首页 > 运维架构 > Shell

Linux学习---shell编程(05-通配符,正则表达式)

2016-09-06 13:24 381 查看
通配符与正则表达式

1.     通配符,完全匹配:ls abc,只能显示文件名是abc的文件,如果要显示abcdef,必须ls abc*

2.     正则表达式,包含匹配:grep “abc” test,可以显示包含了abc的行

3.     基础正则表达式(别的语言中可能比这里规则多)

*

前一个字符匹配0次或者多次:a*,表示a匹配0次或者多次

.

匹配除了换行符外任意一个字符,相当于通配符中的?

^

匹配行首。例如^hello会匹配以hello开头的行

$

匹配行尾。例如hello$会匹配以hello结束的行

[]

匹配[]中指定的任意一个字符,只匹配一个字符

[^]

^在[]里面,代表取反,[^a-z]代表任意一个非小写字母

\

转译符

\{\n}

表示其前面的字符出现了n次。[0-9]\{4\}匹配四位数字,[1][3-8][0-9]\{9\}匹配手机号

\{n,\}

表示其前面的字符出现了不小于n次。[0-9]\{2\}表示两位以上的数字

\{n,m\}

表示前面的字符至少出现了n次,最多出现m次[a-z]\{8,16\}表示匹配最少8次,最多16次的小写字母

 

 

 

grep “a*” test

#显示test全部内容(在正则表达式中,这种写法没有任何作用)

grep “aa*” test

#显示至少包含有一个a的行

grep “aaa*” test

#显示至少包含2个连续a的行

grep “s..d” test

#匹配s与d之间有2个字符的行,如:said

grep “s.*d” test

#匹配s与d之间有任意字符的行,即,行里有s,d的行

grep “.*” test

#匹配所有

grep “^H” test

#匹配以H开头的行

grep “H$” test

#匹配以H结尾的行

grep -n “^$” test

#匹配空白行, -n显示行号

grep s[ab]id test

#匹配包含a,b中任意一个字符的行,即包含said或者sbid的行才能被匹配

grep ^[0-9] test

#匹配以数字开头的行

grep [^0-9] test

#匹配不包含数字的行

grep ^[^0-9] test

#匹配不是数字开头的行

grep “\.$”

#匹配以 . 结尾的行

grep “.$”

#匹配以字符结尾的行,即非空白行

grep “h\{\3}”

#匹配有三个连续h的行

grep [0-9]{\3\}

#匹配有三个连续数字的行

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: