1、grep
grep是g一种查找过滤工具,grep支持正则表达式
2、正则表达式
规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示 一个模式,这就是正则表达式。
形式:' 表达式内容 '
1)字符类
. 匹配任意字符的一次出现
[] 匹配括号中的任意字符的一次出现
- 在[]内表示字符范围
^ 例如:[^xy] 匹配除括号内字符之外的任意字符的一次出现
[[:digit:]] 匹配一个数字 [[:alpha:]] 匹配一个字母
2)数量限定符
? 紧跟在它前面的单元匹配零次或一次
+紧跟在它前面的单元匹配一次或多次
*紧跟在它前面的单元匹配零次或多次
{N}紧跟在它前面的单元匹配N次
{N,}紧跟在它前面的单元匹配至少N次
{N,M}紧跟在它前面的单元匹配至少N次,最多M次
3)位置限定符
^ 匹配行首的位置
$ 匹配行尾的位置
\< 匹配单词开头的位置
\> 匹配单词结尾的位置
\b 匹配单词开头或结尾的位置
\B 匹配不是单词开头或结尾的位置
4)特殊字符
\ ? + {} | ()
这些字符在扩展正则和基准正则有不同的含义,在基准正则中代表普通字符,想要使用其特殊含义需要转义字符转义;在扩展正则中代表特殊含义字符,想要使用其普通含义需要转义字符转义。
例如:匹配合法的手机号码
解析命令
3、grep选项
--colour 高亮显示
-L 打印不匹配模板的文件清单
-n 显示匹配行及行号
-? 同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行
-i 忽略大小写差别
-o 只显示正则表达式匹配的部分
-v 反检索,只显示不匹配的行
-R,-r,递归的读取目录下的所有文件,包括子目录。 比如grep -R 'pattern' test会在 test 及其子目录下的所有文件中,匹配 pattern
-V 显示软件版本信息
4、grep与egrep
egrep命令等同于grep-E,利用此命令可以使用扩展的正则表达式对文本进行搜索,并把符合用户需求的字符串打印出来。
5、grep与fgrep
fgrep命令等同于grep-F,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。 原文链接:https://www.f2er.com/regex/359013.html