grep 及 正则表达式
一、grep概念 grep,即搜索正则表达式,也就是说grep简单来讲就是用来搜索匹配字符的。 二、正则表达式: (1)正则表达式遵循的几个重复的操作 - ? 最多匹配一次 - * 匹配零次或者任意多次 - + 匹配一次以上 - {n} 匹配n次 - {n,} 最少匹配n次 - {,m} 最多匹配m次 (2)常用的正则表达式栗子: ^ 行首 $ 行尾 [ ] 匹配出现的任意一个 ^user$ 只包含user [tty]$ 以tty结尾的行 ^ [ ^ l ] 排除关联目录的目录列表 [ . * 0 ] 0之前或之后加任意字符 [ ^ $ ] 空行 [ ^ . * $ ] 匹配行中任意字符串 ^ . . . . . . $ 包括6个字符的行 ^ q 以^ q开始行 ^ . $ 仅有一个字符的行 ^.[0-9][0-9] 以一个句点和两个数字开始的行 [ 0 - 9 ] { 2 } - [ 0 - 9 ] { 2 } - [ 0 - 9 ] { 4 } 日期格式d d - m m - y y y y [ 0 - 9 ] { 3 } . [ 0 - 9 ] { 3 } . [ 0 - 9 ] { 3 } . [ 0 - 9 ] { 3 } I P地址格式 [A-Za-z]* 匹配所有单词 三、常用的 grep 选项 (1)-c 只输出匹配行的计数。 (2)-i不区分大小写(只适用于单字符)。 (3)-n显示匹配行及行号。 (4)-s不显示不存在或无匹配文本的错误信息。 (5)-v显示不包含匹配文本的所有行。 file1是file拷贝出来的,即cp file file1 (6)-l查询多文件时只输出包含匹配字符的文件名。 (7)-h查询多文件时不显示文件名。 (8)多次过滤: (9)使用 grep 匹配“与”或者“或”模式 grep命令加- E参数,表示允许使用扩展模式匹配。 (10)-w 搜索整个词,而不是词中的部分字串。 (11)-A 显示匹配行之后的N行 -B 显示匹配行之前的N行 -C 显示匹配行前后的N行 (12)-r 递归搜索全部的文件 用法:$ grep -r "file" * (13)-o 只显示匹配的字串(当使用正则表达式时比较有用处) (14)-b 显示匹配的位置 注意:以上输出显示的不是行内的位置,而是整个文件中的字节byte位置 (15)--color将搜索到的字符予以颜色加以标识,易于辨认 (16)-q 静默模式,不输出,在shell脚本中经常用到 四、grep中使用正则表达式 (1). 匹配任意单个字符 (2)*匹配前面一个字符任意次(可以是0次) (3).* 匹配任意长度的任意字符(贪婪模式)
(4)[ ]指定范围内的任意单个字符 [^]指定范围内之外的字符 (6)X{m,} X出现大于m次,无上限 (7)? 匹配其前面的字符0次或一次(-E,使用扩展表达式) (8)锚定符^ 锚定行首(行首匹配) (9)$ 锚定行尾(行尾匹配) (10)^$ 空白行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |