正则表达式与工具
正则表达式
正则表达式,又称规则表达式。(英语: Regular Expression),在代码中常简写为regex、 regexp或
RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式不只有一种,而且 LINUX中不同的程序可能会使用不同的正则表达式,如:工具: grep sed awk egrep
正则表达式—通常用于判断语句中,用来检查某一字符串是否满足某一格式正则表达式是由普通字符与元字符组成
普通字符包括大小写字母、数字、标点符号及一些其他符号
元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
linux中常用的有两种正则表达式引擎
●基础正则表达式:BRE
●扩展正则表达式:ERE
grep
语法:grep 【选项】… 查找条件 目标文件
-E :开启扩展(Extend)的正则表达式
-c : 计算找到’搜寻字符串·的次数
-i : 忽略大小写的不同,所以大小写视为相同
-o :只显示被模式匹配到的字符串
-v :反向选择,亦即显示出没有·搜寻字符串’
内容的那一行!(反向查找,输出与查找条件不相符的行)
- -color=auto :可以将找到的关键词部分加上颜色的显示喔!
-n :顺便输出行号
为了防止出错查找一串字符串时加上单引号
例如:我们过滤网卡ip地址
例如分别将非空行和空行写入到test.txt
“ ^$ ”表示空行
基础正则表达式常见元字符
(支持工具:grep、egrep、sed、awk)
定位符
^ 匹配输入字符串开始的位置
$ 匹配输入字符串结尾的位置
非打印字符
\n 匹配一个换行符
\r 匹配一个回车符
\t 匹配一个制表符
例如查看以t开头的内容
或者查看
注意这里匹配的是上一个字符的次数
-E 开启正则表达式功能就不需要加转义符
扩展正则表达式
扩展正则表达式(支持的工具:egrep、awk )
+ 作用:重复一个或者一个以上的前一个字符
示例:执行"egrep -n ‘wo+d’ test.txt"命令,即可查询"“wood”“woood”"woooooood"等字符串
? 作用:零个或者一个的前一个字符
示例:执行"egrep -n ‘bes?t’ test.txt"命令,即可查询"bet" "best"这两个字符串
l 作用:使用或者(or))的方式找出多个字符
示例:执行"egrep -n ‘oflislon’ test.txt"命令即可查询"of"或者"if"或者"on"字符串
() 作用:查找"组"字符串
示例:"egrep -n ‘t (al e) st’
test.txt”。“tast"与"test”因为这两个单词的"t"与"st"是重复的,所以将"a"与"e"列于”()“符号当中,并以”|"分隔,即可查询"tast"或者"test"字符串
()+ 作用:辨别多个重复的组
示例:“egre