shell中正则表达式总结
darkless

shell正则表达式分为基础正则表达式和扩展正则表达式。shell的正则表达式可以用在很多地方用来匹配我们需要的结果,例如可以用在gerp命令后面。

shell基础正则表达式

  • 字符匹配:
. 任意单个字符
[ ] 指定范围内的任意单个字符
[ 0,9 ] , [ [:digit: ]]
[a,z ] , [[ :lower:]]
[A,Z] , [[:upper:]]
[[:alpha:]] 匹配任意英文字母
[[:alnum:]] 匹配任意英文字母和数字
[[:space:]] 匹配空格
[[:punct:]] 匹配任意特殊字符
[^] 匹配指定范围内的任意单个字符

  • 次数匹配:用户匹配其前面的字符的次数
  _匹配前面字符任意次
. 匹配任意字符的任何次数
\? 匹配前面字符0次或者1次
\{m\} 匹配前面字符m次
\{m,n\} 匹配前面字符至少m次至多n次
\{m,\} 匹配前面字符至少m次
\{0,m\} 匹配前面的字符至多m次_

  • 位置锚定:用于指定字符出现的位置
^ 锚定行首
$ 锚定行尾
^$ 空白行
\< 锚定词首
\> 锚定词尾

  • 分组
_\(\)  例如 \(ab\)  xy 匹配ab任意次数_

  • 引用
\1  反向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容
\2 引用前面的第二个左括号以及与之对应的右括号中的模式所匹配到的内容
例如:\(a.b\)xy\1 可以匹配到:a6bxya6b

扩展正则表达式

扩展正则表达式是在基础正则表达式的基础上有所增加和改动,大部分都和基础正则表达式相同。

改动内容

_次数匹配:
:匹配其前面的字符任意次;
?: 匹配其前面的字符0或1次;
+: 匹配其前面的字符至少1次
{m}: 匹配其前面的字符m次;
{m,n}: 至少m次,至多n次
{m,}: 至少m次;
{0,n}:至多n次;_

  • 分组:
()  括号直接可以分组
| 或者
grep -E "con(C|c)at" 表示 conCat或concat

本文完。

 评论
评论插件加载失败
正在加载评论插件