正则表达式
1、正则表达式的使用
1.1、概念:
正则表达式(或称Regular Expression,简称RE),是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的分割,匹配、査找及替换操作。即正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
这种枯燥的概念难理解,其实,正则表达式是用来匹配文件中的字符串的方法。它
在正则表达式中,我们把用于匹配的特殊符号又称作元字符。在shell中,元字 符又分为基础元字符(BRE)和扩展元字符(ERE)。
扩展正则表达式
熟悉正则表达式的人应该很疑惑,在正则表达式中应该还可以支持一些元字符,比如"+"、"?"、"|"、"()"。
其实 Linux 是支持这些元字符的,只是 grep 命令默认不支持而已,因为grep把这些扩展元字符看成是普通符号,如果要想支持这些元字符,则可以使用 egrep 或 grep -E 命令。所以我们又把这些元字符称作扩展元字符。
如果査询 egrep 命令的帮助,对 egrep 的说明就是和 grep -E 一样的命令,
Shell 中支持的扩展元字符。
注:"+"、"?"、"|"、"()"、"{}“等扩展元字符egrep命令或grep -E是支持的。grep命令在不加-E选项的情况下可以按如下格式写:”+"、"?
正常过滤IP地址:([0-9]{1,3}.){3}[0.9]{1,3}
ifconfig | grep “netmask”| egrep -o “([0-9]{1,3}.){3}[0-9]{1,3}”
有两个IP先查看
ifconfig | grep “netmask”
在提取
ifconfig | grep “netmask” | awk ‘{print $2}’