正则表达式

一.基础正则表达式

grep:分析一行信息,若其中有我们想要的信息,就将该行取出来

grep[-acinv]'搜索字符串'filename

-a:将二进制文件以文本文件的方式搜索数据

-c:计算找到搜索字符串的次数

-i:忽略大小写

-n:顺便输出行号

-v:反向选择,即显示出没有'搜索字符串'内容的那一行

例子:last|grep'root'

例子:last|grep-v'root'

last|grep'root'|cut-d''-f1

例1.搜索特定字符串

从文件中取得'the'字符串

grep-n'the'filename

当该行没有'the'就取出来

grep-nv'the'filename

例2.利用[]搜索集合字符

[]中不论有几个字符都代表有一个字符

grep-n'te[ae]st'filename

[^]是[]的反向选择

grep-n'[^g]oo'filename

例3.行首^和行尾$字符

查询以'the'开头的行

grep-n'^the'filename

查询以小写字母开头

grep-n'^[a-z]'filename

查询非字母开头的

grep-n'^[^a-zA-Z]'filename

找出空行

grep-n'^$'filename

略去空行和注释行

grep-v'^$'filename|grep-v'^#'

例4.任意一个字符.和重复字符*

grep-n'g..d'filename:查找共有四个字符串,开始是g结束是d

grep-n'000*'filename:至少俩个00字符串

grep-n'g00*g'filename:开头和结尾都是g,中间有一个以上o

grep-n'g.*g'filename:开头和结尾都是g,中间可有可无

找出任意数字的行grep-n'[0-9][0-9]*'filename

例5.限定连续重复字符范围

grep-n'0\{2\}'filename:找到两个0的字符串

grep-n'go\{2,5\}g'filename:找到g后面有2~5个o,然后在接个g的字符串

grep-n'go\{2,\}g'filename:找到两个以上的

二.扩展正则表达式

上面的一个例子可以这样:egrep-v'^$|^#'filename找出不是空白行和注释行

+:重复一个或者一个以上

?:0个或者1个

|:用或的方式找出字符串

():找出用户组字符串grep-n'g(la|oo)d'filename

意思是搜索glad或者是good字符串

相关推荐