-->cat1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 49000000448
my god, I am not oldboy, but OLDBOY!1) ^:以……开头的行
-->grep'^my'1.txt
my blog isttp://oldboy.blog.$1cto.com
my qq is 49000448
my god, I am not oldboy, but OLDBOY!2) $:以……结尾的行
-->grep'448$'1.txt
my qq is 49000448
not 49000000448
//显示文件结尾的隐藏字符 -A
-->cat-A1.txt
I am oldboy teacher!$
I teach linux.$
$
I like bedminton ball, billiard ball and chinese chess!$
my blog isttp://oldboy.blog.$1cto.com $
our size is http://blog.oldboyedu.com $
my qq is 49000448$
$
not 49000000448$
my god, I am not oldboy, but OLDBOY!$
-->grep'm$'1.txt //m后面有个空格
-->grep'm $'1.txt
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
3)^$ 空行
//这一行中什么内容都没有,空格也是符号,不算空行
-->grep-n'^$'1.txt
3:
8:
//应用案例:排除文件中的空行
//-v 反向查找。
-->grep-v'^$'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 49000000448
my god, I am not oldboy, but OLDBOY!4) .(点) 任意一个字符
//点不匹配空行。
-->grep'.$'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 49000000448
my god, I am not oldboy, but OLDBOY!5)\ 转义字符:脱掉马甲打回原形,除去原有的特殊含义
//匹配文件以点结尾的行
-->grep'\.$'1.txt
I teach linux.
转义字符序列
\n 回车换行
\t tab键
6)*前一个字符连续出现0次或0次以上
连续出现 0 00 000 oldboy(小写字母出现6次)
刚开始单独使用,熟练掌握后再看*
-->grep'0*'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 49000000448
my god, I am not oldboy, but OLDBOY!7).* 所有内容,任意内容,任何内容
整体记忆.*表示所有
-->grep '^.*t'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
not 49000000448
my god, I am not oldboy, but OLDBOY!
//正则特色:正则表达式的贪婪行,.*表示所有或*连续出现的时候,表现出尽可能贪婪匹配。
//2*,表示数字2出现了0次,或者0次以上,出现0次相当于是什么都没有 也就等于grep ''1.txt
8) [a-z][0-9][abc]1次匹配1个字符,匹配任何一个字符
-->grep'[abc]'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my god, I am not oldboy, but OLDBOY!
-->grep'[a-zA-Z0-9]'1.txt
中括号中的符号表示符号,没有特殊含义
-->grep'[a-zA-Z0-9/]'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 49000000448
my god, I am not oldboy, but OLDBOY!9)[^abc] 取反,排除,排除a或b或c的内容,匹配a或b或c之外的内容。
扩展正则
10)+前一个字符连续出现了一个或一次以上
-->grep-E'0+'1.txt == -->egrep'0+'1.txt
my qq is 49000448
not 49000000448
匹配出文件中连续的数字
-->egrep'[0-9]+'1.txt
my blog isttp://oldboy.blog.$1cto.com
my qq is 49000448
not 49000000448-o 显示匹配过程
egrep-o'[0-9]+'1.txt
1490004484900000044811) | 表示或者
-->egrep'oldboy|oldbey'1.txt
I am oldboy teacher!
my blog isttp://oldbey.blog.$1cto.com
our size is http://blog.oldboyedu.com
my god, I am not oldboy, but OLDBOY![]一次只能匹配一个字符,|可以是字符串
12)()被括起来的内容,表示一个整体(一个字符),后面应用(反向引用sed)
-->egrep'oldboy|oldbey'1.txt
-->egrep'oldb[oe]y'1.txt
-->egrep'oldb(o|e)y'1.txt
13){} 连续出现 o{n,m} 前一个字母至少出现n次,最多出现m次。
-->egrep'0{1,3}'1.txt
my qq is 49000448
not 49000000448
-->egrep'0{4,5}'1.txt
not 49000000448
-->egrep'0{3}'1.txt
my qq is 49000448
not 49000000448
-->egrep'0{,3}'1.txt
my qq is 49000448
not 49000000448
-->egrep'0{3,}'1.txt
my qq is 49000448
not 4900000044814)?前一个字符出现了0次或1次
-->egrep'I?'1.txt
I am oldboy teacher!
I teach linux.
I like bedminton ball, billiard ball and chinese chess!
my blog isttp://oldboy.blog.$1cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 49000000448
my god, I am not oldboy, but OLDBOY
-->egrep-on'I?'1.txt
1:I
2:I
4:I
10:I