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}

注意为{ } grep是运维经常用到的命令,正则表达式也是重要的,需要重点掌趣,多看,并且多多完善这篇博客,以便于日后的学习与复习

浙公网安备 33010602011771号