正则表达式

2019-04-22  本文已影响0人  linux_龍

1.什么是正则表达式
发明一套符号,不同的 符号有不同的含义,方便我们在文件中查找/过滤内容
简称正则 regular expression RE
正则表达式分类
1.基础正则 basic BRE
^ , ,^ ,., , ., [] , [^]
2.扩展正则 extended ERE
+,| ,(),{} ,?
2.通配符与正则区别
作用 支持的命令
通配符 方便我们进行查找文件 Linux下面大部分命令都可以使用
正则 方便我们在文件中查找/过滤内容 Linux三剑客 开发语言 Python go java
3.使用正则注意事项
1.注意中文符号
2.给grep egrep 加上颜色(centos7系统自带 centos6需要自己添加别名)
3.空格也是符号
cat -A 显示每一行结束的标记。显示隐藏符号,并在每行结尾加$
4.基础正则

\^以...开头的行 例:\^m \^oldboy
\$ 以...结尾的行 例:m \$ oldboy\$
^$ 显示空行,这一行中什么都没有 排除空行:grep -vn '^$'

表示任意一个字符(单个)不会匹配出空行。 grep -o显示grep每一次过滤出什么内容,匹配到什么内容(显示过程)
\ 转义符,去掉符号原有的特殊含义(脱掉马甲,打回原形) 转义字符系列 \n 回车,换行:\t tab,一个字符相当于8个空格的位置
*前一个字符连续出现0次或0次以上 重复=repetition 用法 grep 0* 很少单独使用
[] 中括号 [abc] 相当于一个字符,匹配到a或b或c 中括号内的内容都会被匹配
[^] 不要a或不要b或不要c [^abc] 字符为单位 不要这几个内容
让echo支持转义字符 echo -e ' '
echo 不输出每行结尾的回车 echo -n
特点:贪婪性,能匹配多少就匹配多少,来者不拒
正则表达式表示所有.或者是连续出现的时候会表现出贪婪性
习题
显示以m或n或o开头的行

grep  '^[mno]'  /oldboy/oldboy.txt

以m或n或点结尾的行

grep  '[mn.]$'  /oldboy/oldboy.txt

显示以m或n或o开头的并且以m或n或点结尾的行

grep  '^[mno].*[mn.]$'  /oldboy/oldboy.txt
grep  '^[mno] /oldboy/oldboy.txt |grep '[mn.]$'

[^abc] 字符为单位 不要这几个内容
grep -v 以行为单位 包含内容的行都不要
5.扩展正则 使用grep -E或者egrep 也支持基础正则

上一篇下一篇

猜你喜欢

热点阅读