grep

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




原文地址:https://www.cnblogs.com/l10n/p/9416645.html