简介
-
正则就是一些具有特殊含义的符号
-
例如:* . ^ $ (还有很多就不列举了)
正则和通配符的区别
-
通配符主要是针对文件名来使用的,例如找文件夹名是以 a 为开头 就是 a*
-
正则主要是针对文件的内容来使用,例如找文件中以a为开头的行,需要使用的就是正则,答案 a.*
grep命令
作用:从文件中过来满足条件的行
格式:grep [选项] 条件 文件名
选项:
- -v:显示文件中不包含搜索内容的行数
例子:
#1 先创建一个测试文件
[root@localhost ~]# vi book.txt
MY NAME IS zhaosi
I come form SHIJIAZHUANG xinle
I am 22years old this year.
nice to meet#you all
i hope we can be good friends.
#how are you#2 从测试文件中过滤出包含 # 的行
[root@localhost ~]# grep (有空格)"#" (这里有空格)book.txt
nice to meet#you all
#how are you#3 从测试文件中过滤出包含 zhaosi 的行
[root@localhost ~]# grep "zhaosi" book.txtMY NAME IS zhaosi
正则符号
|
|
|
. | 代表任意一个字符 | |
* | 代表其前面的字符出现任意次数 | |
.* | 表示任意个任意字符 | |
^ | 表示的是行首部 | |
$ | 表示的是行尾部 |
例子:
1)关于 . 的案例
先创建测试文件
[root@localhost ~]# vi book.txt
MY NAME IS zhaosi
I come form SHIJIAZHUANG xinle
I am 22years old this year.
nice to meet#you all
i hope we can be good friends.
#how are you
- 过滤出f和m之间有两个字符的行
[root@localhost ~]# grep "f..m" book.txt
I come form SHIJIAZHUANG xinle
案例2)关于*的例子
#准备测试文件
[root@localhost ~]# vi book.txt
MY NAME IS zhaosi
I come form SHIJIAZHUANG xinle
I am 22years old this year.
nice to meet#you all
i hope we can be good friends.
#how are you
a
ab
bbbbbbba
b
过滤出b前面有任意个a的行【0 1 多】
[root@localhost ~]# grep "a*b" book.txt
i hope we can be good friends.
ab
bbbbbbba
b
案例3)关于 .* 的案例
1.过滤出包含字母 o 和 e 的行,而且l要在前
- 先准备测试文件
[root@localhost ~]# vi book.txt
MY NAME IS zhaosi
I come form SHIJIAZHUANG xinle
I am 22years old this year.
nice to meet#you all
i hope we can be good friends.
#how are you
a
ab
bbbbbbba
b
答案如下:
[root@localhost ~]# grep "o.*e" book.txt
I come form SHIJIAZHUANG xinle
I am 22years old this year.
nice to meet#you all
i hope we can be good friends.
#how are you
2.过滤出含 form 的行
[root@localhost ~]# grep "form" book.txt
I come form SHIJIAZHUANG xinle
3.过滤出以nice开头的行
[root@localhost ~]# grep "^nice" book.txt
nice to meet#you all
4.过滤出以you结尾的行
[root@localhost ~]# grep "you$" book.txt
#how are you
5.过滤出以n为开头 ,中间包含e的,l为结尾的行
[root@localhost ~]# grep "^n.*e.*l$" book.txt
nice to meet#you all
6.过滤出开头第二个字符是h的行
[root@localhost ~]# grep "^.h" book.txt
#how are you
7.过滤出结尾第二个字符是s的行
[root@localhost ~]# grep "s.$" book.txt
MY NAME IS zhaosi
i hope we can be good friends.