# grep -n '.$' regular_express.txt
7.显示5-9行数据
# cat -An regular_express.txt |head -n 10 |tail -n 6
8.显示空白行
# grep -n '^$' regular_express.txt
9.找出g??d字符串,起头g结束d的四个字符串
# grep -n 'g..d' regular_express.txt
10. o*代表空字符(就是有没有字符都可以)或者一个到N个o字符,所以grep -n 'o*' regular_express.txt就会把所有行全部打印出来,
11.oo*代表o+空字符或者一个到N个o字符,所以grep -n 'oo*' regular_express.txt就会把o,oo,ooo等的行全部打印出来
12."goo*g"代表gog,goog,gooog...等
# grep -n 'goo*g' regular_express.txt
13.找出含g...g字符串的行
注: .代表任意字符, .*则就代表空字符或者一个到N个任意字符
# grep -n 'g.*g' regular_express.txt
14.找出含有数字的行
# grep -n '[0-9][0-9]*' regular_express.txt
或# grep -n '[0-9]' regular_express.txt
15.找出含两个o的字符串
注:{}因为在shell里有特殊意义,所以需要加跳脱符来让其失去意义
# grep -n 'o{2}' regular_express.txt
找出g后含2到5个o然后以g结尾的字符串
# grep -n 'go{2,5}g' regular_express.txt
找出g后含2以上的o然后以g结尾的字符串
# grep -n 'go{2,}g' regular_express.txt
总结:
^word 表示带搜寻的字符串(word)在行首
word$ 表示带搜寻的字符串(word)在行尾
. 表示1个任意字符
表示转义字符,在特殊字符前加会将原本的特殊字符意义去除
* 表示重复0到无穷多个前一个RE(正则表达式)字符
[list] 表示搜索含有list的字符串
[n1-n2] 表示搜索指定的字符串范围,例如[0-9] [a-z] [A-Z]等
[^list] 表示反向字符串的范围,例如[0-9]表示非数字字符,[A-Z]表示非大写字符范围
{n,m} 表示找出n到m个前一个RE字符
{n,} 表示n个以上的前一个RE字符
egrep总结:
+ 表示重复一个或一个以上的前一个RE字符
范例:egrep 'go+d' regular_express.txt
表示搜寻(god)(good)(goood)...等等字符串,o+代表[一个以上的o]
? 表示重复零个或一个的前一个RE字符
范例:egrep 'go?d' regular_express.txt
表示搜寻(gd)(god)字符串,o?代表[空的或1个o]
注:egrep下'go+d'和'go?d'的结果集合就等于grep下的'go*d'
| 表示用或(or)的方式找出数个字符串
范例:egrep 'gd|good|dog' regular_express.txt










