正则表达式的贪婪匹配

 正则表达式的贪婪匹配
2009-07-05 09:26:03
标签: sed  正则  shell  贪婪  awk
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://tanzj.blog.51cto.com/802764/174233
str="uid=100(guest) gid=100(others) groups=10(users),11(floppy)"
guest  others  users  floppy
正则表达式是有贪婪性的,它总是与最长的可能长度匹配,而且越是排在前面的通配符优先级越高。
 
#!/bin/bash
stra="uid=100(guest) gid=100(others) groups=10(users),11(floppy)"
strb="uid=100(guest)gid=100(others)groups=10(users),11(floppy)"
 
#floppy
echo $stra |sed 's/.*(\(.*\)).*/\1/'
echo $stra |awk '{a=substr($3,length($3)-6,6); b=substr($3,1,6); c=length($3);print a,b,c}'
#guest
echo $stra |sed 's/[^(]*(\([^)]*\)).*/\1/'
echo $stra |awk '{a=gensub(/.*\((.*)\)/,"\\1","g",$1);print a}'
#others
echo $stra |sed 's/users\|others/***&***/g'
echo $stra |sed 's/[^(]*([^)]*)[^(]*(\([^)]*\)).*/\1/'
echo $stra |sed 's/[^ ]*[ ][^(]*(\([^)]*\)).*/\1/'
#users
echo $stra |sed 's/.*[ ][^(]*(\([^)]*\)).*/\1/'
echo $stra |awk '{a=gensub(/[^(]*\(([^)]*).*/,"\\1","g",$3);print a}'
 
时间一久自己都看的晕忽忽的。。。记下来用的时候翻翻

本文出自 “SimpleWorldSimpleLife” 博客,请务必保留此出处http://tanzj.blog.51cto.com/802764/174233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值