微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

grep

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,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。

原文地址:https://www.jb51.cc/regex/359013.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐