很多时候,用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
阅读(2795) | 评论(0) | 转发(1) |