定义:当从一个文件命令输出中抽取或过滤文本时,可以使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合。例如,在一个文本中抽取一个词,它的头两个字符是大写,后面紧跟四个数字,不使用正则表达式,在shell中将不能实现。
基本元字符集及其含义
^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟*,匹配0个或多个此单字符
[] 匹配[]内字符,可以是单字或字符序列,使用-表示范围,比如[1-255]
/ 转义字符,用于屏蔽一个元字符的特殊含义
. 匹配任意单字符
pattern/{n/} 用来匹配前面pattern出现次数,n为次数
pattern/{n,/}m 含义同上,但次数最少为n
pattern/{n,m/} 含义同上,但pattern出现的次数在n,m之间
.匹配任意单字符: “.”允许匹配ASCII集中任意字符,或为字母,或为数字
例 ls -l ...x..x..x
^在行首以^匹配字符串或字符序列: 例 ls -l |grep ^d 列出目录
$在行尾以$匹配字符串或字符: ^$匹配空行 ^.$只包含一个字符的行
使用/{/}匹配模式结果出现的次数:
A/{2/}B 匹配结果为AAB
A/{2,/}B 匹配A至少4次,比如AAAAB,AAAAAB,AAAAAAAAAAB等
A/{2,4/}B 匹配结果为A出现2-4次,AAB,AAAB,AAAAB
[0-9]/{4/}xx[0-9]/{4/} 前4个字符是数字,接下来是xx,最后4个也是数字