正则
一串有规律的字符串
掌握好正则对编写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的行打印出来。