一,
正则表达式:不同符号有不同含义,方便我们在文件中查找过滤内容。
正则表达式=Regular Expression RE
正则表达式分类:
基础正则:
^ $ ^$ . * .* [] [^]
扩展正则=Extended RE ERE
+ | () {} ?
通配符与正则表达式的区别
通配符的作用:方便我们进行查找文件。
通配符支持的命令:Linux下面大部分命令支持
正则表达式的作用:方便我们进行过滤(在文件中查找)
正则表达式支持的命令:Linux三剑客开发语言(Python Go PHP JAVA)
使用正则表达式的注意事项:
(1)注意中文符号
(2)给grep/egrep 加上颜色 (CentOS7默认是已经改,CentOS6/5需要自己添加别名)
二,
基础正则
(1)^:以……开头的行 (例如:grep '^m' oldboy.txt)
(2)$:以……结尾的行(例如:grep 'm$' oldboy.txt)
空格也是符号,也能被过滤出来。
cat -A 显示出文件中所有隐藏符号,每一行结尾加上符号($)
grep -o 显示grep每次过滤出什么内容(配这什么内容)
(3). 点 :在正则表达式中表示任意一个字符(单个并不会匹配空行)
(4) \ 转义字符:脱掉马甲打回原形,去掉符号原有的特殊含义
撬棍系列:回车= \n tab=\t
echo -e =让echo指出转义字符 \n \t
echo -n =不输出每行结尾的回车
(5)*=前1个字符连续出现0次或0次以上
(6).*=所有任意符
正则表达式的特点:贪婪性(能匹配多少就匹配多少)
正则表达式表示所有(.*)或者是连续出现的时候会产生贪婪性。
例如:grep '^.*0' oldboy.txt
(7)[]中括号 =在正则表达式中[]里面写入什么就匹配什么(^除了第一位的)
[abc]相当于1个字符,匹配到a或b或c
[a-Z] =[a-zA-Z]
[a-zA-Z0-Z]=[0-Z]
(8)[^]:取反
[^abc]=表示不要a或b或c
三,
扩展正则
egrep=grep -E
(1)+:前一个字符连续出现一次或多次
+加号一般就是与[]一起使用
(2)|=或者
(3)()=被括起来的内容相当于是一个整体(用来表示后向引用(反向引用)
(4){}:连续出现
b{m.n}:表示这个b最少出现m次最多出现n次
b{m}前一个字符连续出现m次
b{m,}前一个字符连续出现至少m次
b{,n}前一个字符连续最多出现n次
(5)?:表示前一个字符出现0次或一次
查找帮助:man grep / info grep