grep
grep:全局用正则表达式搜索,并且打印符合条件的行
grep [option] .... pattern [file]
参数
-
--color=auto 将匹配到的文本添加颜色显示
-
-v 取反,显示没有匹配到
-
-i 忽略大小写
-
-n 显示匹配到的行的行号
-
-c 只显示匹配到的行的个数
-
-o 只显示匹配到的字符
-
-q 静默模式,不输出东西
-
-A # 输出后#行
-
-B # 输出前#行
-
-C # 前后各输出#行
-
-e 表示或者
-
-E 扩展正则表达式
-
-r 递归查找
grep -q "qwertyuip;qwertyuo" passwd
echo $? # 表示上条命令是否正确
grep -q "root" passwd
echo $?
grep -e "root" -e "mail" passwd
grep -r root /etc/
正则表达式
-
字符匹配
-
. 匹配任意单个字符
-
[abc] 匹配执行范围内的任意单个字符 [0-9]
-
[^abc] 取反
-
[:alnum:] 数字大小写 [a-zA-Z0-9]
-
[:alpha:] 大小写字母 [a-zA-z]
-
[:lower:] 小写字母 [a-z]
-
[:upper:] 大写字母 [A-Z]
-
[:digit:] 数字 [0-9]
-
[:punct:] 标点符号
-
-
匹配次数
-
* 0次或者多次,是贪婪匹配
-
\?0次或者一次
-
\+ 最少一次
-
\{n\} 匹配n次
-
\{m,n\} 最少m次,最多n次
-
\{,n\} 最多n次
-
\{m,\} 最少m次
-
-
位置锚定
-
^ 行首锚定
-
$ 结尾
-
^$ 空行
-
-
向后引用
- \1:表示前面第一个括号内匹配之后产生的字符,在\1的位置要在出现一次
- \2:
egrep
egrep =grep -E
支持扩展正则表达式,与标准增长表达式的区别就是不需要转义