. 任意一个字符

* 零个或多个*前面的字符

.* 零个或多个任意字符,即所有

egrep

+ 一个或多个+前面的字符

? 零个或一个?前面的字符

|  或者

[a-Z] 任意英文字母

[0-9] 任意数字

^[0-9] 以数字开头

^[^0-9] 以非数字开头

[0-9]$ 以数字结尾

^[a-Z] 以英文字母开头

^[^a-Z] 不以英文字母开头

[a-Z]$ 以英文字母结尾

‘^$’ 表示空行

‘^#’ #开头

grep

语法:grep [-cinvABC]  ‘word’  filename

-c 打印符合要求的行数

-i 忽略大小写

-n 打印时连同行号一起显示

-v 取反

-A 后跟一个数字n,打印时连同下面n行一起打印

-B 后跟一个数字n,打印时连同上面n行一起打印

-C 后跟一个数字n,打印时上下n行一起打印

-r 把目录下所有文件遍历一遍

例:

1、grep -n 'root' /etc/passwd  //过滤包含关键字的行并显示行号

grep 4开头4位数 grep以字母和数字开头_文件名

2、grep -nv 'root' /etc/passwd //过滤不包含关键字的行并显示行号

grep 4开头4位数 grep以字母和数字开头_grep 4开头4位数_02

3、grep -i 'root' 1.txt  //过滤关键字时忽略大小写

grep 4开头4位数 grep以字母和数字开头_文件名_03

4、grep -ic 'root' 1.txt  //过滤关键字时忽略大小写且只显示行数

grep 4开头4位数 grep以字母和数字开头_txt文件_04

5、grep '[0-9]' /etc/passwd  //过滤包含数字的行

grep 4开头4位数 grep以字母和数字开头_grep 4开头4位数_05

6、grep -v '[0-9]' 1.txt  //过滤不包含数字的行

7、grep -v '^#' 1.txt  //过滤以#号开头的行

8、grep -v '^#' 1.txt |grep -v '^$' //去除以#号开头的行和所有空行

9、grep '^[a-Z]' 1.txt  //过滤以英文字母开头的行

10、grep '^[^0-9]' 1.txt //过滤以非数字开头的行

11、grep 'r.o' 1.txt  //过滤包含任意一个字符的行

grep 4开头4位数 grep以字母和数字开头_文件名_06

12、grep 'r*o' 1.txt //过滤包含零个或多个*前面字符的行

grep 4开头4位数 grep以字母和数字开头_txt文件_07

13、grep 'o\{2\}' 1.txt  //过滤字符的次数,2可以随意更改

grep 4开头4位数 grep以字母和数字开头_文件名_08

14、grep 'root' *.txt  

//显示当前目录下所有txt文件中包含root的行(默认显示文件名)

grep 4开头4位数 grep以字母和数字开头_grep 4开头4位数_09

15、grep -h 'root' *.txt  

//显示当前目录下所有txt文件中包含root的行,-h 不显示文件名

grep 4开头4位数 grep以字母和数字开头_txt文件_10

egrep  grep的扩展

1、egrep 'o+' 1.txt  //过滤1个或多个+前面的字符

grep 4开头4位数 grep以字母和数字开头_大小写_11

2、egrep '(oo)+' 1.txt //过滤1个或多个‘oo’

grep 4开头4位数 grep以字母和数字开头_txt文件_12

3、egrep 'o?' 1.txt //过滤0个或1个?前面的字符

grep 4开头4位数 grep以字母和数字开头_文件名_13

4、egrep 'roo|body' 1.txt //过滤包含|前面或者后面的字符

grep 4开头4位数 grep以字母和数字开头_文件名_14

5、egrep 'r(o|a)o' 1.txt //过滤包含roo或rao的字符

grep 4开头4位数 grep以字母和数字开头_txt文件_15


grep 和egrep 还可以过滤两个或多个关键词

grep -E 'abc|123' 1.txt

egrep 'abc|123' 1.txt

https://blog.51cto.com/ypsmile/1402197