1.特殊符号在shell正则中的作用
^ 匹配正则表达式的开头,或若果在括号中,表示不匹配扩括号内的字符
$ 匹配前面的正则表达式,在字符串或者行结尾处
. 匹配任意字符
* 匹配0或多个的前面字符
.* 匹配任意字符包括空行
? 匹配0或1个的前面字符,使用时前面需加上转义符号\
+ 匹配1或多个的前面字符,使用时前面需加上转义符号\
() 匹配括起来的正则表达式群,使用时前面需加上转义符号\,例如\(abc\)
[] 匹配方括号内的任一字符,其中可用连字符(-)指的连续字符的范围;^符号苦出现在方括号的第一个位置,则表示匹配不在列表中的任一字
{} 区间表达式,匹配在它前面的单个字符重现的次数区别。\{n\}指重现n次;\{n,m\}指重现n至m次;
【备注】:
grep命令使用上述字符时,若加上-E参数,则正则表达式中无需加转义符\,例如:
grep "\(ccc\)\{4\}" 1.sh
grep -E "(ccc){4}" 1.sh