您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
马哥Linux运维学习笔记-正则表达式
发布时间:2018-04-30 10:02:41编辑:雪饮阅读()
单词锚定匹配:
(1)锚定词首,使用\<或\b来匹配其后字符,如:
grep --color '\<root' anaconda-ks.cfg
这里会将anaconda-ks.cfg文件中所有行进行扫描,遇到某行中某个单词正好是以root开头的就输出该行并标记该行中该单词的颜色为红色
(2)锚定词尾,使用\>或\b来匹配其前字符,如:
grep --color 'root\>' anaconda-ks.cfg
这里会将anaconda-ks.cfg文件中所有行进行扫描,遇到某行中某个单词正好是以root结尾的就输出该行并标记该行中该单词的颜色为红色
(3)完整单词锚定: \<待匹配单词\>或\b待匹配单词\b,如:
grep --color '\<root\>' anaconda-ks.cfg
这里会将anaconda-ks.cfg文件中所有行进行扫描,遇到某行中某个单词正好是root就输出该行并标记该行中root的颜色为红色
分组与后向引用:
分组:\(待分组正则\o)
引用:\待调用分组序号
分组与后向引用是不可单独存在的,分组是将局部正则的一个封装,而后向引用则负责来调用该封装。如:
grep --color '\(o\)\1' anaconda-ks.cfg
这里会将anaconda-ks.cfg文件中所有行进行扫描,遇到某行中连续两个字符都是o就输出该行并标记该行中oo的颜色为红色
grep命令
-i:不区分大小
-v:有匹配到的行不显示,不匹配的行反而显示
-o:只显示每行匹配到的字符串
--color:给每行中匹配到的每个结果标记颜色
-E:
使用扩展的正则表达式,如:
grep -E --color 'C|cat' anaconda-ks.cfg
逐行扫描,如果某行中有大写的C字符或cat字符则输出该行并给该行中匹配的每个结果标记颜色。
使用-E参数相当于:grep -E=egrep
这两个是等效的
-A number:
匹配到某行后还要显示该行下面的n行(即使不符合匹配正则的行),每个匹配行和其下面的n行为一组,每组以独占一行的--为分隔符。
比如-A 2则表示在匹配到某行后,还要显示该行下面的2行无论是否符合匹配正则的行。
-B number:与-A参数相反,是向前取n行。
-C number:组合-A和-B,表示前后各n行。
man命令
man命令用来查看手册,比如我要查看grep命令的手册则使用命令man grep
扩展正则:
[:space:]: 任何会产生空白的字符,包括空格键,Tab键,CR等
如:grep -E '^[[::space]]+' 1.txt
会逐行扫描,如果某行中以空白开头的字符至少1个,则该行被输出。
结合管道:
管道可以将输出结果作为其它命令的二进制数据输入,如
ifconfig | grep -E '^[[::space]]+'
fgrep:
fgrep是快速查找的grep,不支持正则
关键字词:linux,正则表达式