awk中的grouping匹配

1580阅读 0评论2013-04-22 joepayne
分类:LINUX

很多时候,用awk的时候想匹配某几个单词,正则表达式中叫grouping,要匹配的内容放到圆括号()中
比如我要找三个放到尖括号<>中的内容,这样:
gawk '{ match($0,/.*<(.+)>.*<(.+)>.*<(.+)>/, a);print a[1] a[2] a[3]}'
asdfsdf<1111>asdfdf<222><333>
1111222333
aaaaaaaaaaaaaaaaaaaafff

ffffbbbbbbbb


没有找到打印空字符,再判断一下就可以了
比如匹配必需在行尾:
gawk '{ if (match($0,/.*<(.+)>$/, a)) print a[1]}'
aaaa
tom
aaaajack
aaaaJack
tom


上一篇:B树算法与实现
下一篇:Linux线程之线程栈