Shell正则应用
正则表达式 regular expression, RE 是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念
正则表达式的作用
Linux正则表达式经常在 grep,sed,awk 等中出现,要想学好这些命令首先就要掌握正则表达式
大量的字符串文件需要进行配置,而且是非交互式的
过滤相关的字符串,匹配字符串,打印字符串
正则表达式应用非常广泛,存在于各种语言中,例如:php,python,java等。
基础正则表达式
正则表达式
\ 转义符,将特殊字符进行转义,忽略其特殊意义
^ 匹配行首,awk中,^则是匹配字符串的开始
$ 匹配行尾,awk中,$则是匹配字符串的结尾
^$ 表示空行
. 匹配除换行符\n之外的任意单个字符
[ ] 匹配包含在[字符]之中的任意一个字符
[^ ] 匹配[^字符]之外的任意一个字符
[ - ] 匹配[]中指定范围内的任意一个字符
? 匹配之前的项1次或者0次
+ 匹配之前的项1次或者多次
* 匹配之前的项0次或者多次
() 匹配表达式,创建一个用于匹配的子串
{ n } 匹配之前的项n次,n是可以为0的正整数
{n,} 之前的项至少需要匹配n次
{n,m} 指定之前的项至少匹配n次,最多匹配m次,n<=m
| 交替匹配|两边的任意一项
ab(c|d) 匹配abc或abd
[[:space:]] 空格
[[:digit:]] [0-9]
[[:lower:]] [a-z]
[[:upper:]] [A-Z]
[[:alpha:]] [a-Z]