正则表达式

一:正则表达式与shell

shell也支持正则表达式,但不是所有命令都支持正则表达式,常见的命令只有grep、sed、awk命令支持正则表达式
注意:grep -E 和egrep  是等同的

二:特殊字符

定位符 说明
  ^   锚定开头以^a为a开头,默认锚定一个字符
  $        锚定结尾a$以a结尾,默认锚定一个字符

定位符使用技巧:同时锚定开头和结尾,做精准匹配;单一锚定开头和结尾,做模糊匹配

【测试案例】

egrep "^ac$" 文件名         #从文件中匹配以a开头,以c结尾的字符
匹配符   说明
 .匹配除回车以外的任意字符
  ()     字符串分组
  []  定义字符类,匹配括号中的一个字符
 [^]    表示否定括号中出现字符类的字符,取反
   \    转义字符
   |      或

【测试案例】

egrep "^a.c$" 文件名          #从文件中匹配以a开头,以c结尾,中间任意的字符串
egrep "^a[0-9]c$" 文件名      #从文件中匹配以a开头,以c结尾,中间0-9的字符串
egrep "^a\*c$" 文件名         #从文件中匹配以a开头,以c结尾,中间是*的字符串
egrep "^(a|b)c$" 文件名       #从文件中匹配以a或b开头,以c结尾的字符串
限定符 说明
 * 某个字符之后加星号表示该字符出现0次或多次
   ? 与星号相似,表示该字符出现0次或1次
+ 与星号相似,表示其前面字符出现1次或多次,单必须出现1次
{n,m}某个字符之后出现,表示改字符最少n次,最多m次
{m} 正好出现了m次

【测试案例】

egrep "^ab*c$" 文件名       #匹配以a开头,以c结尾,中间没有b或者中间有多个b的字符串
egrep "^ab{3}c$" 文件名     #匹配以a开头,以c结尾,中间正好出现了3个b的字符串
egrep "^ab{2,5}c$" 文件名   #匹配以a开头,以c结尾,中间正好出现了2-5个b的字符串

三:POSIX字符

[[:alnum:]]    匹配任意字母字符0-9 a-z A-Z
[[:alpha:]]  匹配任意字母,大写或小写
[[:lower:]]  小写字母a-z
[[:print:]]  非空字符(包括空格)
[[:blank:]]  空格与TAB字符
[[:punct:]]  标点符号
[[:cntrl:]]      控制字符
[[:space:]] 空白字符
[[:upper:]]    大写字母A-Z
[[:digit:]] 数字0-9
[[:graph:]]  非空字符 (非空格字符)
[[:xdigit:]] 

 16进制数字  


补充:
echo a*c >> file            把a*c追加到file中

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值