有关正则表达式容易混淆事项
- 本文讲的是Linux 系统中的正则表达式,即 Linux 正则表达式,应用正则表达式的命令就是 grep(egrep),sed,awk,注意,其他普通命令正常情况下无法使用正则表达式。
- 正则表达式与前文讲解的通配符,特殊字符有本质区别,正则在Linux中是通过三剑客(grep(egrep),sed,awk)命令在文件或数据流中过滤内容的。而通配符是大部分普通命令都支持的,它主要用来检查文件或目录的
环境变量修改
配置后操作时不会出现异常匹配情况
linux 正则表达式分类
| 字符 | 作用 | 
|---|---|
| ^ | 尖角号,用法为^dalei,表示匹配以dalei 字符串开头的行 | 
| $ | 美元符,用法为dalei$,表示匹配以dalei 字符串结尾的行 | 
| ^$ | 组合符,表示空行,逻辑解释就是以^结尾的行,或者以$开头的行 | 
| . | 点号,表示匹配任意一个且只有一个字符(但是不能匹配空行) | 
| \ | 转义字符,让有特殊含义的字符失去含义,变成普通符号字符,如 \.就只表示小数点 | 
| * | 重复匹配前一个字符(连续出现)0次或1次以上。注意:当重复0次的时候,表示啥也没有(空),即匹配所有内容 | 
| .* | 组合符,表示匹配所有 | 
| ^.* | 组合符,匹配以任意多个字符开头的内容 | 
| .*S | 组合符,以任意多个字符结尾的内容 | 
| [abc] | 匹配[]集合内任意一个字符a或b或c;[abc] 也可写成[a-c] | 
| [^abc] | 匹配不包含 ^后的任意字符a或b或c,这里的^表示对[abc] 的取反,^不能使用!替代 | 
- 中括号常用形式有:
- [a-z] 表示匹配所有单个小写字母
- [A-Z] 表示匹配所有单个大写字母
- [a-zA-Z] 表示匹配所有单个大小写字母
- [0-9]表示匹配所有单个数字
- [a-zA-Z0-9] 表示匹配所有字母数字
| 字符 | 作用 | 
|---|---|
| + | 匹配前一个字符 1 次或多次 | 
| [:/]+ | 匹配括号内的:或/字符1次或多次 | 
| ? | 匹配前一个字符0次或1次 | 
| | | 表示或者,即同时过滤多个字符串 | 
| () | 分组过滤被括起来的东西表示一个整体,另外()的内容可以被后面的\n 引用,n为数字,表示引用第几个括号的内容 | 
| \n | 引用前面()小括号里的内容,例如:(aa)\1,匹配aaaa | 
| a{n,m} | 匹配前一个字符最少n次,最多m次 | 
| a{n,} | 匹配前一个字符最少n次 | 
| a{n} | 匹配前一个字符正好n次 | 
| a{,m} | 匹配前一个字符最多m次 | 
sed命令 经常使用
获取主机IP地址
 ifconfig eth0|sed -rn ‘2s#^.inet (.) net.*$#\1#gp’









