正则
一串有规律的字符串
掌握好正则对编写shell脚本有很大帮助
各种编程脚本中都有正则
grep sed awk
grep/egrep工具
格式: grep [-cinvABC] 'word' filename
-c 打印符合要求的行的行数
![]()
-i 不区分大小写
-n 显示行号

-v 打印不符合要求的行
-r 遍历所有子目录

-A 后面跟数字,例如-A2 表示打印符合要求的行以及下面两行

-B 后面跟数字,例如 -B2 表示打印符合要求的行以及上面两行
-C 后面跟数字,例如-C2 表示打印符合要求的行以及上下两行
grep/egrep用法示例:
过滤出带有某个关键词的行,并输出行号

过滤出不带有某个关键词的行,并输出行号

过滤出所有包含数字的行

过滤出所有不带数字的行,只要在上面命令中加上 -v 选项就行

过滤掉所有以#开头的行 符号 ^ 表示行的开始

过滤掉所有空行和以#开头的行
$表示行的结尾,空行就用 ^$ 表示

打印出除了符合中括号 [ ] 里的内容


过滤出任意一个字符和重复字符
符号 . 表示任意一个字符

符号 * 表示零个或多个前面的字符
![]()

.* 表示零个或多个任意字符,空行也包含在内

指定要过滤出的字符出现的次数

grep使用大括号 { } 要在大括号前使用脱义符号,不想使用脱义符号就要使用 -E 选项,或使用egrep


过滤出一个或多个指定的字符
符号 + 表示匹配1个或多个+前面的字符,grep使用 +也要在前面加脱义符号


过滤出零个或一个指定的字符 使用符号?

过滤出字符串1或字符串2 用符号 |

egrep中()的应用
()内是一个整体

t(ell|oo)表示把有tell 或too的行打印出来。
来源:oschina
链接:https://my.oschina.net/u/3867258/blog/1839690