操作系统三剑客命令前情(正则简介及符号)
一.正则概念
Q:正则指什么?有什么意义?如何使用?
A: 正则指正则表达式,是为了处理大量字符串信息而定义的一套规则和方法,通过
定义这些的特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。
二. 正则分类
- POSIX规范将正则表达式分为两种:
①:基本正则表达式
②:扩展正则表达式(高级功能)
- 正则命令
grep
sed
awk
当使用扩展正则表达式是只能使用:
egrep/grep -E
sed -r
awk
三. 正则符号
- 基础正则符号
^ :匹配以......开头的信息
$ :匹配以......结尾的信息
^$ :匹配空行信息 -n 显示行号
* :匹配星号前面一个字符 连续出现0或者多次的
. :匹配任意一个字符且只有一个字符
.* :匹配文件所有信息
[] :匹配多个字符信息
[^]:匹配多个字符信息,并进行取反。
\ :转义符号,有意义 => 无意义,无意义 => 有意义
- 扩展正则符号
+ : 匹配加号前面一个字符 连续出现1次或者多次的
? : 匹配问号前面一个字符 连续出现0次或者1次的
{} : 匹配花括号前面一个字符 连续出现指定次数
(): 01. 将多个字符信息汇总成一个整体字符串 vs []
02. 利用sed命令进行替换时, 实现后项引用前项
| : 01. 匹配多个字符串信息
2. 或者
{}具体说明:
{n,m} : 匹配最少出现n次, 最多出现m次的
[root@linux67 oldboy]# cat test01.txt
gd
god
good
goood
gooood
goooood
gooooood
[root@linux67 oldboy]# grep -E "o{3,5}" test01.txt -o
ooo
oooo
ooooo
ooooo
[root@linux67 oldboy]#
[root@linux67 oldboy]# grep -E "o{2,6}" test01.txt -o
oo
ooo
oooo
ooooo
oooooo
{n} : 匹配正好出现n次连续字符串信息
[root@linux67 oldboy]# grep -E "o{2}" test01.txt
good
goood
gooood
goooood
gooooood
[root@linux67 oldboy]# grep -E "o{2}" test01.txt -o
oo
oo
oo
oo
oo
oo
oo
oo
oo
{n,} : 匹配最少出现n次, 最多出现次数没有限制
[root@linux67 oldboy]# cat test01.txt
gd
god
good
goood
gooood
goooood
gooooood
[root@linux67 oldboy]# grep -E "o{2,}" test01.txt -o
oo
ooo
oooo
ooooo
oooooo
[root@linux67 oldboy]# grep -E "o{2,}" test01.txt
good
goood
gooood
goooood
gooooood
{,m} : 匹配最少出现0次, 最多出现m次数
[root@linux67 oldboy]# grep -E "o{,5}" test01.txt
gd
god
good
goood
gooood
goooood
gooooood
[root@linux67 oldboy]# grep -E "o{,5}" test01.txt -o
o
oo
ooo
oooo
ooooo
ooooo
o
三剑客命令具体说明(man grep/sed/awk)