本文中主要介绍了linu系统下grep命令的用法和基本正则表达式。
1.grep作用
Linux系统中文本文件是最常见的一种文件,而grep命令是一种强大的文本搜索工具,也是最长用到的命令之一,它能使用正则表达式搜索文本。grep全称是Global Regular Expression Print,它的使用权限是所有用户。在linux中,有grep,egrep,fgrep三种命令格式,其中grep默认支持基本正则表达式,egrep支持扩展正则表达式,fgrep不支持正则表达式元字符,搜索字符串的速度快。
本文只介绍基本的grep命令和基本正则表达式。
2.grep的命令格式
grep [options] 'pattern' FILE
3.grep的基本使用
在abc.txt文件中有如下字段:
要想找出其中包含a的字段,可以用如下命令:
grep ‘a’ abc.txt
对应结果如下:
4.正则表达式
正则表达式就是一类字符所书写出的模式(pattern),来处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊称号的辅助,可以让用户轻易达到查找、删除、替换某特定字符串的处理程序。需要注意的是基本正则表达式使用的是贪婪模式。
常见基本正则表达式如下:
^:锚定行首的符号条件的内容,用法格式“^pattern”
如,搜索abc.txt下,以a开头的字段:
grep '^a' abc.txt
$:锚定行尾的符号条件的内容,用法格式“pattern$”
如,搜索abc.txt下,以b结尾的字段:
grep 'b$' abc.txt
如a*b表示取b,ab,aab,aaab...
grep 'a*b' abc.txt
[]:匹配指定范围内的任意单个字符
如:
如a\?b则有ab或b匹配
如a\{1,3\}b:ab,aab,aaab
如:
ab任意字符ab:ab.*ab
5.grep的常见选项
--color=auto:自动加颜色
-v:反向选取,只显示不符合模式的行
-o:只显示被模式匹配到的字符串,而不是整个行
-A #:显示匹配到的行时,顺带显示其后面的#个行
-i:匹配是不区分字符大小写
-B #:前面的#行
-C #:后面的#行
-E:使用拓展的正则表达式
关于grep的综合使用,以及扩展正则表达式,将在后续博文中介绍。。