六周第一次课(1月15日)
9.1 正则介绍_grep上
1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep [options]
3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
演示
创建目录,copy文件
grep "" *
grep -c 行数
grep -n 行号
grep -i 不区分大小写
grep -v 取反,指不带某字符的行数
grep -r 子目录或者孙目录所有下面的文件全部遍历一遍
grep -A2 除了把包含关键词的这行列出来,还会把这一行下面2行列出来
grep -B2 以上2行
grep -C 上下2行
9.2 grep中
grep "[0-9]" 包含0-9
grep -v "[0-9]" 不包含0-9
grep -n "^#" 以#开头的行
grep -nv "^#" 不以#开头的行
grep "[^0-9]" 非0-9,其他字符标识,^放在括号里头取非,放外头取开头
grep "^[^0-9]" 查询列出以非0-9开头的行数
9.3 grep下
grep "r.o" .代表任意的一个字符
grep "o*o" *表示左边的字符重复0-n次,结尾是o
grep ".*" 任意字符
grep "aming.*bash"
grep "o\{2\}" 表示o出现2次 \脱义
grep "o{0,3\}" o出现0-3次
egrep =grep -E 扩展的grep能识别,不用脱义
oo括起来表示1个整体
egrep "o+o" +表示前面字符的1次或多次,*是0次或多次,后面是o
grep "o?l" ?表示前面的字符重复0或1次
egrep "root|nologin" |或者
扩展
把一个目录下,过滤所有*.php文档中含有eval的行
grep -r --include="*.php" 'eval' /data/
原文地址:http://blog.51cto.com/4375471/2061334