咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式,而且 GNU grep 在所有的 Linux 系统中都是默认有的。Grep 命令被用于搜索定位存储在您服务器或工作站上的任何信息。
(1)正则表达式:正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。如:^new world1|world2 [^]
在/etc/passwd目录中搜索nginx,搜索中是区分大小写的;如果想不要区分请添加参数:-i
(2)描点:你可以分别使用 ^ 和 $ 符号来正则匹配输入行的开始或结尾。
(a)查找以apache开头的行
(b)查找以nologin结尾的行
(c)查找仅包含foo的行
(c)查找空行
(d)放在括号内的表达式,即包在 "[:" 和 ":]" 之间的字符类的名字,它表示的是属于此类的所有字符列表。标准的字符类名称如下:
[:alnum:] - 字母数字字符
[:alpha:] - 字母字符
[:blank:] - 空字符: 空格键符 和 制表符
[:digit:] - 数字: 0 1 2 3 4 5 6 7 8 9
[:lower:] - 小写字母: a b c d e f g h i j k l m n o p q r s t u v w x y z
[:space:] - 空格字符: 制表符、换行符、垂直制表符、换页符、回车符和空格键符
[:upper:] - 大写字母: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
如:显示含有数字的行
(3)通配符:可以使用 "." 来匹配单个字符。例子中匹配以 "b" 开头以 "t" 结尾的3个字符的单词:
如搜寻以g[a-zA-Z0-9]n结尾的行,这里的点代表任意一个字符
(4)转义符:去掉特殊符号的属性,如去掉点的通配符特性
(5)搜索以”-”符号开头的模式:要使用 -e 选项来搜索匹配 --test-- 字符串,如果不使用 -e 选项,grep 命令会试图把 --test-- 当作自己的选项参数来解析:
(6)怎么使用 grep 的“或”匹配?
如显示/etc/passwd文件含有apache或者nginx词的行
(7)怎么使用 grep 的“和”匹配?
如搜寻具有apache词和nginx词的行
(8)怎样使用序列检测:
egrep co{2}l #o字母出现两次
egrep co{2,}l #o字母至少出现2次