awk的模式匹配
awk 'BEGIN{ command } pattern {commands} END{ commands }'
当我们需要在文本中取出一段东西的时候,可以使用awk。
awk和sed一样是个比较妖的东西,有正则,但是正则语法又和linux下的不一样。
1.awk '/正则/{要干的事}' file
2. awk '/正则1/,/正则2/{要干的事}' file
在1中,被正则表达式匹配到的行,将会执行{要干的事}
在2中,从被正则1匹配到的行开始,到被正则2匹配到的行结束会执行{要干的事}
我有一个这样的文件
1111111111111111111
<cbo data>
int a;
char c[20];
<\cbo data>
2222222222222222222
我想要取出<cbo data></cbo data>之间的数:
awk '/<cbo data>/,/<\\cbo data>/{
print $0
}' test
得到:
<cbo data>
int a;
char c[20];
<\cbo data>