加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grep

发布时间:2020-12-14 04:20:02 所属栏目:百科 来源:网络整理
导读:1、grep grep是g一种查找过滤工具,grep支持正则表达式 2、正则表达式 规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示 一个模式,这就是正则表达式。 形式:' 表达式内容 ' 1)字符类 . 匹配任意字符的一次出现 []

1、grep

grep是g一种查找过滤工具,grep支持正则表达式


2、正则表达式

规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示 一个模式,这就是正则表达式。


形式:' 表达式内容 '


1)字符类

. 匹配任意字符的一次出现


[] 匹配括号中的任意字符的一次出现


- 在[]内表示字符范围


^ 例如:[^xy] 匹配除括号内字符之外的任意字符的一次出现


[[:digit:]] 匹配一个数字 [[:alpha:]] 匹配一个字母


2)数量限定符

? 紧跟在它前面的单元匹配零次或一次


+紧跟在它前面的单元匹配一次或多次


*紧跟在它前面的单元匹配零次或多次


{N}紧跟在它前面的单元匹配N次


{N,}紧跟在它前面的单元匹配至少N次


{N,M}紧跟在它前面的单元匹配至少N次,最多M次


3)位置限定符

^ 匹配行首的位置


$ 匹配行尾的位置


&; 匹配单词开头的位置


&; 匹配单词结尾的位置


b 匹配单词开头或结尾的位置


B 匹配不是单词开头或结尾的位置


4)特殊字符

? + {} | ()

这些字符在扩展正则和基准正则有不同的含义,在基准正则中代表普通字符,想要使用其特殊含义需要转义字符转义;在扩展正则中代表特殊含义字符,想要使用其普通含义需要转义字符转义。


例如:匹配合法的手机号码

wKioL1esaZ6igEuGAABuSAAB13g345.png-wh_50

解析命令

wKiom1esa-OhFCOlAAF2gNbRQ1U380.png-wh_50


3、grep选项

--colour 高亮显示


-l 查询多文件时只输出包含匹配字符的文件名


-L 打印不匹配模板的文件清单


-n 显示匹配行及行号


-s 不显示不存在或无匹配文本的错误信息


-? 同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行


-c 只打印匹配的行数,不显示匹配的内容


-h 当搜索多个文件时,不显示匹配文件名前缀


-i 忽略大小写差别


-o 只显示正则表达式匹配的部分


-q 取消显示,只返回退出状态。0则表示找到了匹配的行


-v 反检索,只显示不匹配的行


-w 如果被&;和&;引用,就把表达式做为一个单词搜索


-R,-r,递归的读取目录下的所有文件,包括子目录。 比如grep -R 'pattern' test会在 test 及其子目录下的所有文件中,匹配 pattern


-V 显示软件版本信息


4、grep与egrep

egrep命令等同于grep-E,利用此命令可以使用扩展的正则表达式对文本进行搜索,并把符合用户需求的字符串打印出来。


5、grep与fgrep

fgrep命令等同于grep-F,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读