- 论坛徽章:
- 2
|
本帖最后由 yinyuemi 于 2011-04-19 06:58 编辑
回复 5# leonqin0101
举个简单的例子吧:- cat file
- 1
- 2
- 3
- xx{
- x
- y
- z
- }
- x
- y
- z
- awk '/{$/{p=1}/^}/{p--}{print "!p = "!p, $0}' file!p = 1 1
- !p = 1 2
- !p = 1 3
- !p = 0 xx{
- !p = 0 x
- !p = 0 y
- !p = 0 z
- !p = 1 }
- !p = 1 x
- !p = 1 y
- !p = 1 z
复制代码 # p可以理解为给所有的行加了个标签, 利用!p的值,就可以打印出你想要的,
- awk '/{$/{p=1}/^}/{p--}{print "!p = "!p, $0}' file |awk '/!p = 1/ && !/}/'
- !p = 1 1
- !p = 1 2
- !p = 1 3
- !p = 1 x
- !p = 1 y
- !p = 1 z
复制代码 整合成一句awk就是3楼的那个代码
我曾经写过关于awk选择性打印方面的学习感受,可以参考一下:
http://bbs.chinaunix.net/thread-1857159-1-1.html |
|