正则表达式

1.基本正则
^匹配行首
例:grep '^r' /etc/passwd
root:x:0:0:root:/root:/bin/bash

$匹配行未
例:grep 'localhost$' /etc/hosts
127.0.0 localhost.localdomain localhost

[]集合,匹配集合中的任意单个字符
例:grep '[A-Z]' brace.txt
abcab CD-ROM

[^]对集合取反
例:grep '[^ab]' brace.txt
sdcgfkill

.匹配任意单个字符
例:grep '.grop' brace.txt
agrop

*匹配前一个字符任意次数

例:egrep 'stuf*' /etc/rc.local
want to do the full Sys V style init stuff.

{n,m}匹配前一个字符n到m次
例:grep '(ab){2,4}' brace.txt
dedef abab ghighi

{n}匹配前一个字符n次
例:grep '(ab){3}' brace.txt
cdcd ababab

()组合为整体,保留
{n,}匹配前一个字符n次以上
例:grep '(ab){2,}' brace.txt
cdcd ababab

2.扩展正则
grep -E 支持扩展正则简写egrep

+最少匹配一次
例:egrep 'f+' /etc/rc.local
want to do the full Sys V style init stuff.
You can put your own initialization stuff in here if you don't

?最多匹配一次
例:egrep 'i?' /etc/rc.local
want to do the full Sys V style in stuff.

{n,m}匹配n到m次
例:egrep '(ab){3}' brace.txt
cdcd ababab

|或者
例:grep -E '^root|^daemon' /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin

()组合为整体,保留

\b单词边界
例:egrep '\binit\b' /etc/rc.local
want to do the full Sys V style init stuff.

\<单词的开头
例:egrep '\' /etc/rc.local
want to do the full Sys V style init stuff.

\>单词的结尾
例:egrep 'll\>' /etc/rc.local
want to do the full Sys V style init stuff.