去除空格http.conf文件空行或开头#号的行
$ grep -E -v "^$|^#" /usr/local/services/tengine-2.1.2/conf/nginx.conf
匹配不分大小写的单词
$ echo "a b B c" |xargs -n1 |grep -i b
b
B
输出匹配的前五个结果
$ seq 20 |grep -m 5 -E '[0-9]{2}'
10
11
12
13
14
统计匹配多少行
$ seq 20 |grep -c -E '[0-9]{2}'
11
匹配b字符开头的行
$ echo "a bc de" |xargs -n1 |grep '^b'
bc
匹配de字符结尾的行并输出匹配的行
$ echo "a ab abc abcd abcde" |xargs -n1 |grep -n 'de$'
5:abcde
递归搜索/etc目录下包含192.167.1.1的conf后缀文件
$ grep -r '192.167.1.1' /etc --include *.conf
排除搜索bak后缀的文件
$ grep -r '192.167.1.1' /opt --exclude *.bak
排除来自file中的文件
$ grep -r '192.167.1.1' /opt --exclude-from file
匹配41或42的数字
$ seq 41 45 |grep -E '4[12]'
41
42
匹配至少2个字符
$ seq 13 |grep -E '[0-9]{2}'
10
11
12
13
匹配至少2个字符的单词,最多3个字符的单词
$ echo "a ab abc abcd abcde" |xargs -n1 |grep -E -w -o '[a-z]{2,3}'
ab
abc
匹配所有IP
$ ifconfig |grep -E -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
打印匹配结果及后3行
$ seq 1 10 |grep 5 -A 3
5
6
7
8
打印匹配结果及前3行
# seq 10 |grep 5 -B 3
2
3
4
5
打印匹配结果及前后3行
# seq 10 |grep 5 -C 3
2
3
4
5
6
7
8