正则表达式:简单的说,正则表达式就是一套处理字符串的规则和方法,一般来说以行为单位对字符串进行处理,通过特殊的符号辅助,可以快速的过滤替换我们需要的某些字符串。
正则表达式实际上就是一种特殊字符,赋予了它特定的含义:
1)^word:搜索以word开头的。
2)word$:搜索以world结尾的。
3). 代表且只能代表任意一个字符。下图是例子:
grep -i:-i不区分大小写。
4)\ :转义符号,让有着特殊身份意义的字符,脱掉马甲,还原原型。
5)* :表示重复0个或多个前面的一个字符。例子:o*:表示无限个o。
6).*:匹配所有字符,^.*:以所有字符开头的。
7)[]:字符集和的重复特殊字符的符号。
上图中符合结果的组合形式是blog或者boog。
8)[^qq]:匹配了非^后的内容的所有内容。
9)a\{n,m\}:重复n—m次前一个重复的字符。
a\{,m\}:重复至多m次前一个重复的字符。但可以没有。
\{n,\}:重复至少n次前一个重复的字符。
\{n\}重复n次前一个重复的字符。
关于m,n以及{}的使用说明:
扩展的正则表达式:
1)+:重复一个或多个以上前面的字符。
2)?:重复零个或一个0(相对于例子中的"490\{0\}448"来说。)前面的字符。
3)|用或的方法查找多个符合的字符串。
4)()找出“用户组”字符串。
题:要求取出ifconfig eth0的addr的10.0.0.7。
注意:
awk -F "[ ]":其中的[ ]可以表示多个间隔符。
awk语句中的"+"的作用可以简化空格,比如十几个空格就可以压缩到一个。
案例:
下图的例子有点难度:
其中的\1的意思是调用前面()内的内容。关于\2,\3的使用方法:
案例:
案例: