grep

去除空格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

你可能感兴趣的:(grep)