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

Linux基础(三)--grep的使用和基本正则表达式

2014-03-01 20:26 881 查看
[b]本文中主要介绍了linu系统下grep命令的用法和基本正则表达式。[/b]

[b]1.grep作用[/b]
[b]Linux系统中文本文件是最常见的一种文件,而grep命令是一种强大的文本搜索工具,也是最长用到的命令之一,它能使用正则表达式搜索文本。grep全称是Global Regular Expression Print,它的使用权限是所有用户。在linux中,有[/b][b]grep,egrep,fgrep三种命令格式,其中grep默认支持基本正则表达式,egrep支持扩展正则表达式,fgrep不支持正则表达式元字符,搜索字符串的速度快。[/b]
[b]本文只介绍基本的grep命令和基本正则表达式。[/b]

[b]2.grep的命令格式[/b][b]
grep [options] 'pattern' FILE
[/b]

[b]3.grep的基本使用[/b]
在abc.txt文件中有如下字段:



要想找出其中包含a的字段,可以用如下命令:
grep ‘a’ abc.txt
对应结果如下:




[b]4.正则表达式[/b]
[b] 正则表达式就是一类字符所书写出的模式(pattern),来处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊称号的辅助,可以让用户轻易达到查找、删除、替换某特定字符串的处理程序。需要注意的是[b][b]基本正则表达式使用的是贪婪模式。[/b][/b][/b]
[b][b][b] 常见基本正则表达式如下:[/b][/b][/b]
[b]^:锚定行首的符号条件的内容,用法格式“^pattern”[/b]
[b]如,搜索abc.txt下,以a开头的字段:[/b]
[b]grep '^a' abc.txt[/b]
[b]

[/b][b]$:锚定行尾的符号条件的内容,用法格式“pattern$”[/b][b]如,搜索abc.txt下,以b结尾的字段:[/b]
[b]grep 'b$' abc.txt[/b]
[b]

[/b]
[b]^$:空白行[/b][b].:匹配任意单个字符[/b][b]*:匹配紧挨在其前面的字符任意次[/b][b]如a*b表示取b,ab,aab,aaab...[/b][b]grep 'a*b' abc.txt[/b][b]

[/b][b].*:匹配任意长度的任意字符[/b][b][]:匹配指定范围内的任意单个字符[/b]如:

[b][^]:匹配指定范围外的任意单个字符[/b][b]\?:匹配紧挨在其前面的字符0次或1次[/b][b] 如a\?b则有ab或b匹配[/b][b]

[/b][b]\{m,n\}:匹配其前面的字符至少m次,至多n次[/b][b] \{0,n\}:至多n次[/b][b] \{m,\}:至少m次,多了不限[/b][b] \{m\}:精确匹配m次[/b][b]如a\{1,3\}b:ab,aab,aaab[/b][b]

[/b][b]\<:锚定词首,用法格式:\<pattern,[/b][b]也可用\b:\bpattern[/b][b]\>:锚定词尾,用法格式:pattern\>[/b][b] \b:pattern\b或[/b][b]\<pattern>\:匹配单词[/b][b]\(\):分组,用法格式:\(pattern\)[/b][b] 如:[/b][b] ab任意字符ab:ab.*ab[/b][b] a.b任意字符a.b:\(a.b).*\1[/b]

[b]5.grep的常见选项[/b]
[b] --color=auto:自动加颜色[/b]
[b] -v:反向选取,只显示不符合模式的行[/b]
[b] -o:只显示被模式匹配到的字符串,而不是整个行[/b]
[b] -A #:显示匹配到的行时,顺带显示其后面的#个行[/b]
[b] -i:匹配是不区分字符大小写[/b]
[b] -B #:前面的#行[/b]
[b] -C #:后面的#行[/b]
[b] -E:使用拓展的正则表达式[/b]

关于grep的综合使用,以及扩展正则表达式,将在后续博文中介绍。。











本文出自 “Xlows” 博客,请务必保留此出处http://xlows.blog.51cto.com/5380484/1365605
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: