名字
grep, egrep, fgerp
解释:
grep是一个最初用于Unix操作系统的命令行工具. 在给出文件列表或标准输入后, grep会对匹配一个或多个正则表达式的文本进行搜索, 并只输出匹配(或者不匹配)的行或文本.
用法:
grep [option] ‘PATTERN‘ file ...
--color=auto
常用选项[option]:
-v : 反向匹配, 显示不能被模式匹配到的行.
-o : 只显示被模式匹配到的字符串, 而非整行
-i : 不区分字母大小写
-E : 支持扩展的正则表达式
-A 数字 :(After) 显示被模式匹配到的行, 还显示下方的行
-B 数字 :(Before) 显示被模式匹配到的行, 还显示上方的行
-C 数字 :(Context) 显示被模式匹配到的行, 显示上下文的行
-n : 显示在文本中的行号
-R : 递归检索
示 例 | 解 释 |
egrep -i ‘test‘ path/to/file | 在file中搜索不区分大小写的‘test‘字串, 并打印该行 |
egrep -o "[a-z0-9_][email protected][a-z0-9]+\.[a-z]+" /path/to/file | 输出file文件中所有电子邮件地址,仅内容 |
egrep -R -n "test_function()" . | 在当前目录下包括子目录子文件中所搜,输出内容所在文件行号及内容 |
扩展的正则表达式 ‘PATTERN‘:
egrep 使用扩展正则表达式来构建模式, 相当于grep -E
基本组成部分
正则表达式 | 描 述 | 示 例 |
. | 匹配任意单个字符 | hack. 匹配hackl和hackm,但是不能匹配hackll,hack |
[] | 匹配包含在[字符]之中的任意一个字符 | coo[kl] 匹配cool或cook |
[^] | 匹配除[字符]之外的任意一个字符 | 9[^01] 匹配93,92 但是不能匹配91, 90 |
[-] | 匹配[]中指定的范围中的任意一个字符 | [0-3] 匹配1~3任意一个数字 |
^ | 锚钉行的开头 | ^diguo 匹配以diguo开头的行 |
$ | 锚钉行的末尾 | diguo$ 匹配以diguo结尾的行 |
\<char | 锚钉单词的开头 | \<char 匹配以char开头的单词 |
char\> | 锚钉单词的结尾 | char\> 匹配以char结尾的单词 |
* | 匹配之前的项目0次或多次 | co*l 等于 cl, col, cooooool 等 |
? | 匹配之前的项目0次或1次 | x?y, 等于 xy, x |
+ | 匹配之前的项目1次或多次 | rollno-9+ 匹配rollno-99, rollno-9 等 但是不能匹配rollno- |
() | 创建一个用于匹配的字符串 | ma(tri)?x 匹配max或者matrix |
{m} | 匹配之前的项目m次 | [0-9]{3} 匹配任意一个三位数, [0-9][0-9][0-9]也可以 |
{m,} | 匹配之前的项目至少m次 | [0-9]{2,} 匹配一个2位数字或 更多位数字 |
{m,n} | 匹配之前的项目至少m次,至多n次 | [0-9]{2,3} 匹配一个2位数字,或3位数字 |
(m|n) | 或者, 匹配|两边的任意一项 | Oct (1st|2nd) 匹配 Oct 1st 或者 Oct 2nd |
/ | 转义字符, 将上面的特殊字符进行转义 | a\.b匹配的是a.b, 但不能匹配ajb, 通过在.之前加上了\, 从而忽略了.的特殊意义 |
POSIX字符类 | meta sequence [:xxxx:] | 可以匹配到常用的字符范围 |
正则表达式 | 描 述 | 示 例 |
[:alnum:] | 字母与数字字符 | [[:alnum:]]+ 一个或多个数字或字母 |
[:alpha:] | 字母字符(包括大写小写字母) | [[:alpha:]]{4} 4个不区分大小写字母 |
[:blank:] | 空格与制表符 | [[:blank:]]* 0个或多个空格或制表符 |
[:digit:] | 数字字符 | [[:digit:]]? 0个或1个数字 |
[:lower:] | 小写字母 | [[:lower:]]{5,} 至少5个小写字母组成的字串 |
[:upper:] | 大写字母 | [[:upper:]]{0,5} 至多5个大写字母组成的字串 |
[:punct:] | 标点符号 | [[:punct:]] 一个标点符号 |
[:space:] | 包括换行符,回车符,在内的所有空白字符 | [[:space:]]* 0或多个任意空白字符 |
grep 使用整理 正则表达式 扩展正则表达式
时间: 2024-11-29 08:30:38