在计算机科学中,对“正则表达式”的定义是:它使用单个字符串来描述或匹配一系列符合某个句法规则的字符串。在很多文本编辑器或其它工具里,正则表达式通常用来检索和替换那些符合某个模式的文本内容。许多程序设计语言也都支持利用正则表达式进行字符串操作。
其实正则表达式只是一种意思、一种表示方法。只要使用的工具支持这种表示方法,那么这个工具就可以处理正则表达式的字符串。常用的工具有:grep\egrep、sed、awk等,其中grep、sed和awk都是针对文本的行进行操作的。
grep命令的格式为:grep【-cinvrABC】‘word’filename,其常用的选项如下:
-c:表示打印符号要求的行数;
-i:表示忽略大小写;
-n:表示输出符合要求的行及行号;
-v:表示打印不符合要求的行;
-r:遍历所有子目录;
-A:后面跟一个数字,过滤出符合要求的行及下面n行;
-B:后面跟一个数字,过滤出符合要求的行及上面n行;
-C:后面跟一个数字,同时过滤出符合要求的行及上下各n行;
创建一个目录,将/etc/passwd这个文件,复制到该目录下;
grep命令自动加了一个color选项,在匹配的时候会将关键词标记;
显示行数和行号;
编辑passwd这个文件,将其中的一个‘nologin’换为大写;
使用-n查看,不会显示大写的那一行;
必须要加上-i选项,才会显示大写的部分;
使用-v查看,显示没有‘nologin’的行;
使用-r查看,遍历所有目录;
分别查看匹配出符合要求的行及上面2行、匹配出符合要求的行及下面2行、匹配出符合要求的行及上下各2行;
匹配出不包含数字的行;
将/etc/inittab复制到当前目录下,修改该文件;匹配不带#号的行;
匹配非数字
(
[^0-9] 非数字(包括字母+特殊符号)
[^a-zA-Z] 非字母(包括数字+特殊符号)
[^0-9a-zA-Z]非数字字幕(特殊符号)
) ;匹配非方括号里面的内容开头的所有字符(^【^】);
这里的‘.’表示任意的一个字符;
匹配‘n个r,结尾是o’的字符串;
‘.*’表示文件的全部字符;
匹配某一行;
匹配出现两个0的行;
不带脱义符号,使用egrep(grep -E);
修改passwd文件内容,在其中两行增加0,匹配‘00’出现两次的行;
匹配0与多个0(从1开始);
匹配?个o(0个或1个),以t结尾;
匹配‘root’或‘nologin’;
‘|’表示或者,可匹配多个;