linux中grep命令
grep [option] "pattern" 文件名
grep "root" /etc/passwd 过滤带有root 字符
正则表达式元字符
1匹配单个字符的元字符
.   表示任意单个字符
[root@localhost ~]# grep "r..t" /etc/passwd
[abc]    或者
[root@localhost ~]# grep "r[aA]t" /tmp/1.txt
-  连续的字符范围
[a-z]  [A-Z]    [a-zA-Z]     [0-9]     [a-zA-Z0-9]
[root@localhost ~]# grep "r[A-Z]t" /tmp/1.txt
rAt
[root@localhost ~]# grep "r[0-9]t" /tmp/1.txt
r8t
[root@localhost ~]# grep "r[a-zA-Z0-9]t" /tmp/1.txt
r8t
rAt
^     取反
[^a-z]
[root@localhost ~]# grep "r[^0-9]t" /tmp/1.txt
rAt
特殊字符集:
	[[:punct:]] 任意单个标
[root@localhost ~]# grep -En "r[[:punct:]]t" /tmp/1.txt
11:r,t
12:r?t
13:r"t"
	[[:space:]]任意单个空白字符
[root@localhost ~]# grep -En "r[[:space:]]t" /tmp/1.txt
14:r t
2 匹配字符出现的位置
 1) ^string    以string 开头 
2)^[rbh]   查找以rbh 开头-----取反 ^[^rbh]
[root@localhost ~]# grep "^[^rbh]" /etc/passwd
3) string&     以string 结尾 
[root@localhost ~]# grep "bash&" /etc/passwd
[root@localhost ~]# grep "nologin&" /etc/passwd | wc -l 
4) ^&    	空行  
[root@localhost ~]# grep "^&" /etc/fstab | wc -l
显示/etc下的目录名 
[root@localhost ~]# ls -l /etc/ | grep "^d" 
3  匹配字符出现的次数
*       匹配前一个字符出现的任意次    ab*:  a  ab abb  abbb
[root@localhost ~]# grep "ab*" /tmp/2.txt
 .*  任意字符
       ?     前一个字符最多出现一次  最少出现0次或一次
       *      0 or  多次
       +      one or more times.(一次或者多次)
       {n}   字符精确出现几次
       {n,}   最少n次  多了不限
       {,m}   最多m次
       {n,m}  最少n次   做多m次
\?     0次或者1次   可有可无
[root@localhost ~]# grep "ab\?" /tmp/2.txt
\+       1次或者多次   最少1次
[root@localhost ~]# grep "ab\+" /tmp/2.txt
\{2\}   精确匹配2次
[root@localhost ~]# grep "ab\{2\}" /tmp/2.txt
\{2,5\}    最少2次  最多5次
[root@localhost ~]# grep "ab\{2,5\}" /tmp/2.txt
\{2,\}  最少2次
[root@localhost ~]# grep "ab\{2,\}" /tmp/2.txt
分组 \(ab)\+
[root@localhost ~]# grep "\(ab\){2,\}" /usr/share/dict/words
option选项:
1)   -i 忽略大小写
[root@localhost ~]# grep -i "^r" /tmp/1.txt
2)  -o 仅显示符合正则表达式的内容,不再显示整行
xpl@localhost ~]$ grep -o "r..t" /etc/passwd
3) -v  反向过滤 
[root@localhost ~]# grep -v "^#" /etc/fstab
4)   -e 根据多个选项过滤文本
[root@localhost ~]# grep -e "^&" -e "^#" /etc/fstab
[root@localhost ~]# grep -v -e "^&" -e "^#" /etc/fstab  不显示
5)-E   	支持扩展正则表达式
[root@localhost ~]# grep -E "\(ab\){2,\}" /usr/share/dict/words
cpu信息
[root@localhost ~]# cat /proc/cpuinfo 
[root@localhost ~]# grep -E "vmx|svm" /proc/cpuinfo
6)   -A  n  同时显示符合条件的后n行
[root@localhost ~]# ifconfig eth0 | grep -A 2 "network"	
-B n 	同时显示符合条件前n
[root@localhost ~]# ifconfig eth0 | grep -B 2 "network"

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号