Linux三剑客之一——grep及正则表达式的学习
1.grep理论
1.1 grep作用
grep是文本搜索工具,根据用户指定的“模式(过滤条件)”进行匹配检索,打印匹配到的行
模式:由正则表达式的元字符和文本字符所编写的过滤条件
1.2 grep参数及说明
参数选项 | 解释说明 |
-v | 反向查找,输出与查找条件不相符的行 |
-n | 显示匹配行号 |
-c | 匹配的行数 |
-o | 只显示匹配项 |
-E | 使用正则表达式 |
-w | 只匹配过滤的单词 |
-i | 不区分大小写 |
-f | 对比两个文件的相同行 |
-r | 递归匹配 |
-A | 匹配的后多少行 |
-B | 匹配的前多少行 |
-C | 前后多少行都匹配 |
-r | 快速查找,不处理链接文件 |
-R | 快速查找,处理链接文件 |
1.3 基本正则表达式BRE集合
符号 | 作用 |
^ | 如“^old”,匹配以old单词开头的行 |
$ | 如“old$”,匹配以old单词结尾的行 |
^$ | 空格 |
. | 匹配任意一个且只有一字符,不能匹配空行 |
\ | 转义字符 |
* | 匹配前一个字符(连续出现)0次或1次以上,即匹配所有内容 |
.* | 匹配所有内容 |
^.* | 匹配任意多个字符开头内容 |
.*$ | 匹配任意多个字符结尾内容 |
[abc] | 匹配abc任意一个 |
[^abc] | 匹配除了abc以外的 |
1.4 扩展正则表达式ERE集合
符号 | 作用 |
+ | 匹配前一个字符一次或多次 |
[:/] | 匹配括号内:或者/字符1次或多次 |
? | 匹配前一个字符0次或者1次 |
() | 分组过滤,被括起来的内容表示一个整体 |
\ | 表示或者,同时过滤多个字符串 |
a{n,m} | 匹配前一个字符最少n次,最多m次 |
a{n,} | 匹配前一个字符最少n次 |
a{n} | 匹配前一个字符正好n次 |
a{,m} | 匹配前一个字符最多n次 |
2.grep实践
2.1 grep基本参数
略
2.2 grep正则表达式
grep ‘4* test.txt
匹配所有4,显示未匹配的行和空白行
grep -E '4+' test.txt
跟'*'对比,未显示空白行
grep '4.' test.txt
匹配4和4后的一个字符
grep '4.*' test.txt
匹配4和以后所有的内容
“|”的用法
()的用法
a{n,m}
![](https://img2022.cnblogs.com/blog/2965424/202209/2965424-20220918202547037-121832427.png)
注意为{ } grep是运维经常用到的命令,正则表达式也是重要的,需要重点掌趣,多看,并且多多完善这篇博客,以便于日后的学习与复习