素材:
以/etc/passwd为素材,备份passwd到/root目录下 cp /etc/passwd /root/user
正则表达式,使用若干符号配合某工具实现对文档的过滤、查找、修改等功能。有符号时一般都要加引号,所以尽量都加引号吧。
基本正则表:
1. 符号 ^
grep bin user //找有bin的行
grep ^bin user //找以bin开头的行
2.符号 $
grep bash user //找有bash的行
grep bash$ user //找以bash结尾的行
3. 符号 ^$
vim user //编辑文档添加空行
grep -n ^$ user //找空行,加n选项可以显示行号
4. 符号 [ ]
grep "[root]" user //找root四个字符任意一个
grep "rot" user //找连续的rot字符串
grep "[a-z]" user //找所有小写字母
5. 符号 [ ^ ]
grep "[^a-Z]" user //找字母之外的内容,^写在[ ]里是取反效果
6. 符号 . 点:匹配任意单个字符
grep "r..t" user //找rt之间有2个任意字符的行
7. 符号 * (不允许单独使用) 匹配前一个字符任意次
grep "ro*t" user //找rt,中间的o有没有都行 rt rot root rooot。。。
grep ".*" user //找任意
8. 符号 \{n, m\ }
grep "ro\{2,4\}t" user //找rt,中间的o可以是2~4个
grep "ro\{3,7\}t" user //找rt,中间的o可以是3~7个,没有匹配条件就没有任何显示
9. 符号 \{n\}
grep "ro\{2\}t" user //找rt,中间的o必须是2个
10.符号 \{n,\}
grep "ro\{2,\}t" user //找rt,中间的o可以是2个以及2个以上
11.符号 \{\}
保留
扩展正则表:
符号 {n,m} 和 +
grep "ro\{1,\}t" user //找1次以及1次以上的o
egrep "ro{1,}t" user //效果同上,扩展正则,网友提议,官方修改添加的
egrep "ro+t" user //效果同上,最精简
符号 ? 和 {n,m} 和 {n}
grep "roo\{0,1\}t" user //第二个o要出现0~1次
egrep "roo{0,1}t" user //效果同上
egrep "roo?t" user //效果同上,最精简
grep "ro\{2\}t" user //找o出现2次的
egrep "ro{2}t" user //效果同上
符号 | 和 () 和 \b
egrep " ^ root | ^ bin" user //找root或者以bin开头的行
egrep "^(root|bin)" user //效果同上
egrep "\bthe\b" abc //找the,\b:前后不允许出现数字,字母,下划线