标签:正则表达式
一、grep的用法:
grep:golobally search for a regular expression and print the results
1,作用:
Linux中grep的功能就是进行字符串数据的对比,然后将符合用户需求的字符串打印出来。
2,格式:
grep [options]
3,常见参数:
. :任意单个字符;
*:紧挨在其前面的字符任意次,可以为0;
^:锚定行首的符合条件的内容;
$:锚定行尾的符合条件的内容;
[ ]:匹配任意单个字符;
[^]:匹配指定范围外的任意单个字符;
-v:反向选取,只显示不符合模式的行;
-o:只显示被模式匹配到的字符串,而不是整个行;
-i:不区分字符大小写;
\< 从匹配正则表达式的行开始;
\>; 到匹配正则表达式的行结束;
还有很多很多,在这就不一一列举了,对于其他参数的用法以及含义,请找男人(man)来解决。
4,实例:
为了方便区别,我们将grep匹配到的字符红色高亮显示,并用命令别名命名:
alias grep="grep --color=auto"
1.grep “^s”/etc/passwd 显示文件passwd中以s开头的文件;
2.grep “h$” /etc/passwd 显示文件passwd中以h结尾的文件:
3.grep –i “s” /etc/passwd 显示文件passwd文件中,以S或s的文件;
4.grep "[^a-zA-Z]" /etc/passwd 匹配除字母外的任意单个字符;
还有一些特殊符号,帮助我们更好更准确的定义参数:
[:alnum:] 表示所有的英文字母包括大小写,以及数字等同于0-9,a-z,A-Z
[:alpha:] 表示大小写英文字母,等同于a-z,A-Z
[digit:]表示数字,等同于0-9
[:lower:]表示小写字母,等同于a-z
[:punct:]表示标点符号,如:‘,?%$#
[:upper:]表示大写字母,等同于A-Z
[:space:]表示空白字符
需要注意的是调用这些特殊字符:
例如: grep “[[:upper:]]”/etc/passwd 显示文件passwd中有任意大写字母的文件
调用特殊字符时需要加”[ ]“,因为[:upper:]整个字符代表的是大写字母,再调用就需要”[]“
grep还有很多参数以及各种用法在这就不再一一阐述。
二、egrep
扩展的正则表达只是在基本的正则表达上作出了小小的一点修改,其修改如下:
在扩展的正则表达中把\( \) 写成()、\{ \} 写成{ },另外加入了+:次数匹配,匹配其前面的字符至少出现一次,无上限、|: 或者(二取一),其余的都一样, 基本正则表达式,使用( ) { } . ? |都需要转义,在扩展正则表达中不需要加\,其详细信息如下:
* :匹配其前面字符的任意次;
?:匹配其前面字符的0此或者1次;
+ :匹配其前面字符至少1次;
例如:至少一个空白符: ‘[[:space:]]+‘
{m,n} :匹配其前面字符至少m最多n次;
三、fgrep
fgrep命令等同于grep -F,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。
本文出自 “菜鸟” 博客,请务必保留此出处http://magine356wj.blog.51cto.com/2664956/1405617
标签:正则表达式
原文地址:http://magine356wj.blog.51cto.com/2664956/1405617