<1.grep和egrep的选项:
-v(反向匹配invert)
-o(仅匹配符合要求的only)
-n(添加行号number)
-i(忽略大小写ignore)
-A n(输出匹配行之后的n行after)
-B n(输出匹配行之前的n行before)
-C(匹配上下文center)
-E(对扩展正则的支持)
-r(递归查找recursion)
<2.元字符:
\b:单词的界定 (\bxiaomi\b=\<xaiomi\>)
?:0或1个字符
+:1个以上字符
*:任意个字符
.*:任意个任意字符
^$:代表空行
<3.经典的例子:
^feng 以feng开头
feng$ 以feng结尾
^$ 空行
feng.* feng+任意个任意字符
^feng$ 只有feng
\<feng 空格或其他字符+feng+任意个任意字符
\bfeng 空格或其他字符+feng+任意个任意字符
\<feng\> 空格或其他字符+feng+空格或其他字符
\bfeng\b 空格或其他字符+feng+空格或其他字符
feng{2,7} fen+2-7个g
(feng){2,7} 2-7个feng
(abc|xia){8} 8个abc或者xia
feng? fen+0或1个g
feng* fen+任意个g
feng+ fen+一个以上g
[0-9] 数字0-9
[^a-z] 非小写字母
[A-Z] 大写字母
[0-Z] 数字及大小写字母
<4.习题
1.进入/lianxi目录,复制/etc/passwd到当前目录下,然后对passwd进行操作
2、查找出当前passwd文件中以ftp或者mail开头的行,在屏幕上输出。
3、查找出当前passwd文件中首行不是以r、m、f开头的行,在屏幕上输出。
4、查找出当前passwd文件中以bash结尾的行。
5、查找出/etc/login.defs文件中的有效行(不显示空行和注释行)。
6、查找出/var/log/messages文档中有16个字母的单词?
7、查找出来/etc/passwd文件里用户名包含liu同时使用bash的用户
8、查找/etc/ssh/sshd_config 里的有效行
9、查找出/etc/ssh/sshd_config 文件里的包含连续2个数字的行
10、查找出包含特殊字符的行
11、查找出不包含数字的行