知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

awk中的grouping匹配

发布时间:2014-09-05 14:46:06作者:知识屋

awk中的grouping匹配
 
很多时候,用awk的时候想匹配某几个单词,正则表达式中叫grouping,要匹配的内容放到圆括号()中
比如我要找三个放到尖括号<>中的内容,这样:
 
gawk '{ match($0,/.*<(.+)>.*<(.+)>.*<(.+)>/, a);print a[1] a[2] a[3]}'
asdfsdf<1111>asdfdf<222><333>
1111222333
aaaaaaaaaaaaaaaaaaaafff
 
ffff<jack>bbbbbbbb
 
没有找到打印空字符,再判断一下就可以了
比如匹配必需在行尾:
 
gawk '{ if (match($0,/.*<(.+)>$/, a)) print a[1]}'
aaaa<tom>
tom
aaaa<tom>jack
aaaaJack<tom>
tom
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜