正则表达式及Linux文本检查工具(2)

-e: PATTERN, --regexp=PATTERN:多模式机制;
-f: FILE, --file=FILE:FILE为每行包含了一个pattern的文本文件,即grep script;
下面就不演示这两个,上面有相关的例子
egrep:扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本。

egrep命令等同于grep -E,利用此命令可以使用扩展的正则表达式对文本进行搜索,并把符合用户需求的字符串打印出来。
fgrep:快速grep,这个版本匹配固定字符串而非正则表达式。并且是唯一可以并行匹配多个字符串的版本。

fgrep命令等同于grep -F,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。

Linux 基础入门教程----正则表达式基础   

Linux正则表达式sed 详述 

Linux正则表达式特性及BRE与ERE的区别

grep使用简明及正则表达式

正则表达式的用法

正则表达式之零宽断言

Linux中正则表达式与文件格式化处理命令(awk/grep/sed)

基础正则表达式

常用正则表达式整理

二、基本正则表达式:
基本意义:由一些基本字符以及某些特殊字符搭配,组合成一段具有某种语法规则的能轻松搜索并匹配文本的字符串
    分类:基本正则表达式与扩展正则表达式
    1)基本正则表达式的元字符
什么是元字符?
    元字符是一个或一组代替一个或多个字符的字符,其实呢就是下面的这几类.
1)字符匹配
.:表示匹配任意的单个字符
[root@linux ~]# grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@linux ~]#我们注意这样的一个例子:
1234567 [root@linux ~]# grep '.' test.txt 
This is a beautiful girl
So do you want to know who is her?
oh! I can`t tell you?
can you tell me your phone number?
My telphone number is 15648562351...
Beat wish to you ?

这样就把所有的行都匹配出来了
[]:匹配指定范围内的单个字符:
[root@linux ~]# grep '[aj]h' test002.txt
ahjhb
[root@linux ~]#[^]:匹配指定范围内的单个字符
[root@linux ~]# grep '[^a]h' test002.txt
ahjhb
[root@linux ~]#[:alnum:] : 数字与字母大小写字符-->"A-Za-z0-9"
[root@linux ~]# grep '[[:alnum:]]' test002.txt
b
ab
acb
aaX2Ab
a\[Ah\?jhb
aba1baba5bab
[root@linux ~]#
####下面的我就不再一一在例子了,很简单[:digit:] : 数字字符-------------->"0-9"
[root@linux ~]# grep '[[:digit:]]' test.txt 
My telphone number is 15648562351...
[root@linux ~]# 把电话号码匹配出来了

[:punct:] : 标点符号字符---------->"?.,"
1234567 [root@linux ~]# grep '[[:punct:]]' test.txt 
So do you want to know who is her?
oh! I can`t tell you?
can you tell me your phone number?
My telphone number is 15648562351...
Beat wish to you ?
[root@linux ~]# 把所有的标点符号匹配出来了

[:alpha:] : 字母字符-------------->"A-Za-z"
12345678 [root@linux ~]# grep '[[:alpha:]]' test.txt 
This is a beautiful girl
So do you want to know who is her?
oh! I can`t tell you?
can you tell me your phone number?
My telphone number is 15648562351...
Beat wish to you ?
除了字母是不是都过滤掉了?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15419.html