grep 参数选项:
-v 排除某些行,显示不包含匹配文本的所有行。
-n 显示匹配行及行号。
-i 不区分大小写(只适合单字符),默认是区分大小写的。
-c 只统计匹配的行数,注意不是匹配的次数。
-E 使用扩展的egrep命令。
--color=auto 为grep过滤的匹配字符串添加颜色。
-w 只匹配过滤的单词。
-o 只输出匹配的内容。
使用grep过滤不包含aaa字符的行
[root@testdb ~]# cat a.log
1 aaa
2 bbb
3 ccc
[root@testdb ~]# grep -v "aaa" a.log
2 bbb
3 ccc
使用grep命令显示过滤后的内容的行号
[root@testdb ~]# cat a.log
1 aaa
2 bbb
3 ccc
[root@testdb ~]# grep -n "aaa" a.log
1:1 aaa
使用-i参数不区分大小写
[root@testdb ~]# cat a.log
1 aaa
2 bbb
3 ccc
4 AAA
5 aAA
6 AAa
7 aab
8 AAc
[root@testdb ~]# grep -i "aaa" a.log
1 aaa
4 AAA
5 aAA
6 AAa
同时过滤两个不同字符串并为过滤的内容
[root@testdb ~]# cat a.log
1 aaa
2 bbb
3 ccc
4 AAA
5 aAA
6 AAa
7 aab
8 AAc
[root@testdb ~]# grep -Ei "aaa|ccc" a.log
1 aaa
3 ccc
4 AAA
5 aAA
6 AAa
计算匹配的字符串数量
[root@testdb ~]# cat a.log
1 aaa
2 bbb
3 ccc
4 AAA
5 aAA
6 AAa
7 aab
8 AAc
[root@testdb ~]# grep -i "aaa" a.log
1 aaa
4 AAA
5 aAA
6 AAa
[root@testdb ~]# grep -c -i "aaa" a.log
4
只输出匹配的内容
[root@testdb ~]# cat a.log
1 aaa
2 bbb
3 ccc
4 AAA
5 aAA
6 AAa
7 aab
8 AAc
[root@testdb ~]# grep -i "aaa" a.log
1 aaa
4 AAA
5 aAA
6 AAa
[root@testdb ~]# grep -o -i "aaa" a.log
aaa
AAA
aAA
AAa
只匹配过滤的单词
[root@testdb ~]# cat a.log
oracle:x:1000:1000::/home/oracle:/bin/bash
oracle1:x:1001:1001::/home/oracle1:/bin/bash
oracle2:x:1002:1002::/home/oracle2:/bin/bash
oracle3:x:1003:1003::/home/oracle3:/bin/bash
[root@testdb ~]# grep "oracle" a.log
oracle:x:1000:1000::/home/oracle:/bin/bash
oracle1:x:1001:1001::/home/oracle1:/bin/bash
oracle2:x:1002:1002::/home/oracle2:/bin/bash
oracle3:x:1003:1003::/home/oracle3:/bin/bash
[root@testdb ~]# grep -w "oracle" a.log
oracle:x:1000:1000::/home/oracle:/bin/bash