grep以及正则表达式
grep以及正则表达式 正则表达式是基本的文本处理常识,理解和掌握好grep以及正则表达式对进行文本处理尤为重要
1.1grep家族: grep:基本正则表达式使用的命令 egrep:扩展正则表达式使用的命令 fgrep(fast grep):不支持正则表达式,在没有正则表达式的字符串中的使用效率非常高,cup资源消耗少 1.2grep命令格式 grep [options] PATTERN [FILE...]
1.2.1option -i忽略大小写 --color:对匹配出来的字符加颜色
-v: 显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串
-E: 使用扩展正则表达式时候使用,grep ?E=egrep -A #: 显示后面的行 -B #:显示前面的行 -C #:显示前后的行 比如:显示、/proc/cpuinfo下面的内容 -A:
-B:
-C:
2.正则表达式:REGular EXPression,REGEXP BasicREGEXP:基本 ExtendedREGEXP:扩展 2.1基本正则表达式 2.1.1字符匹配 .: 匹配任意单个字符 []: 匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]
a.b
[]:
[^]:
2.1.2匹配次数(贪婪模式): *: 匹配其前面的字符任意次 .*: 任意长度的任意字符(任何以a开头和以b结尾的字符)
?: 匹配其前面的字符1次或0次
{m,n}:匹配其前面的字符至少m次,至多n次,当最多次数不限制时n可以省略,m的最小值为0而且不可以省略。 {1,}:至少一次 {0,3}:至多3次
2.1.3位置锚定: ^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符前面的任意内容必须出现在行尾
^$: 空白行
表示没有空白行
&;或b: 锚定词首,其后面的任意字符必须作为单词首部出现
&;或b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现
精确匹配某个单词
分组: () (ab)* 后向引用 1: 引用第一个左括号以及与之对应的右括号所包括的所有内容 2: 引用第二个左括号以及与之对应的右括号所包括的所有内容 3: 引用第三个左括号以及与之对应的右括号所包括的所有内容
2.2拓展正则表达式 2.2.1字符匹配:(和基本正则表达式一样) . [] [^] 2.2.2次数匹配: *: (和基本正则表达式一样) ?:(和基本正则表达式少了) +: 匹配其前面的字符至少1次 下图至少匹配一个空白字符
{m,n}(和基本正则表达式比较少了) 2.2.3位置锚定: ^ $ &; &; (和基本正则表达式一样) 分组: ():分组 1,2,3,...n 或者: |: or C|cat: Cat或cat? C或cat(正确) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |