. 任意一个字符
* 零个或多个*前面的字符
.* 零个或多个任意字符,即所有
egrep
+ 一个或多个+前面的字符
? 零个或一个?前面的字符
| 或者
[a-Z] 任意英文字母
[0-9] 任意数字
^[0-9] 以数字开头
^[^0-9] 以非数字开头
[0-9]$ 以数字结尾
^[a-Z] 以英文字母开头
^[^a-Z] 不以英文字母开头
[a-Z]$ 以英文字母结尾
‘^$’ 表示空行
‘^#’ 以#开头
grep
语法:grep [-cinvABC] ‘word’ filename
-c @H_301_213@打印符合要求的行数
-i @H_301_213@忽略大小写
-v @H_301_213@取反
-A @H_301_213@后跟一个数字n@H_301_213@,打印时连同下面n@H_301_213@行一起打印
-B @H_301_213@后跟一个数字n@H_301_213@,打印时连同上面n@H_301_213@行一起打印
-C @H_301_213@后跟一个数字n@H_301_213@,打印时上下n@H_301_213@行一起打印
@H_301_213@例:
1@H_301_213@、grep -n 'root' /etc/passwd //过滤包含关键字的行并显示行号
2、grep -nv 'root' /etc/passwd //过滤不包含关键字的行并显示行号
3@H_301_213@、grep -i 'root' 1.txt //过滤关键字时忽略大小写
4@H_301_213@、grep -ic 'root' 1.txt //过滤关键字时忽略大小写且只显示行数
5、grep '[0-9]' /etc/passwd //过滤包含数字的行
6@H_301_213@、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 //过滤包含任意一个字符的行
12@H_301_213@、grep 'r*o' 1.txt //过滤包含零个或多个*前面字符的行
13@H_301_213@、grep 'o\{2\}' 1.txt //过滤字符的次数,2可以随意更改
14@H_301_213@、grep 'root' *.txt
//显示当前目录下所有txt文件中包含root的行(默认显示文件名)
15@H_301_213@、grep -h 'root' *.txt
//显示当前目录下所有txt文件中包含root的行,-h 不显示文件名
egrep grep@H_928_502@的扩展
1、egrep 'o+' 1.txt //过滤1个或多个+前面的字符
2、egrep '(oo)+' 1.txt //过滤1个或多个‘oo’
3、egrep 'o?' 1.txt //过滤0个或1个?前面的字符
4、egrep 'roo|body' 1.txt //过滤包含|前面或者后面的字符
5、egrep 'r(o|a)o' 1.txt //过滤包含roo或rao的字符
grep 和egrep 还可以过滤两个或多个关键词
grep -E 'abc|123' 1.txt
egrep 'abc|123' 1.txt
原文链接:https://www.f2er.com/regex/361822.html