免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: yinyuemi

[文本处理] awk之选择性打印 [复制链接]

论坛徽章:
0
发表于 2012-05-21 22:18 |显示全部楼层
awk 'p=1' file会打印file文件中的所有行, 但awk 'p=0' file却什么也没打印, 这是为什么呀?

论坛徽章:
0
发表于 2012-05-21 22:19 |显示全部楼层
awk 'p=1' file会打印file文件中的所有行, 但awk 'p=0' file却什么也没打印, 这是为什么呀?

论坛徽章:
0
发表于 2012-05-22 09:57 |显示全部楼层
1.1 pattern等于ddd时,取其前1行:

    awk '!/ddd/{m=$0}/ddd/{print m}' file
    ccc


连续两行一样就错了。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
发表于 2012-07-10 07:25 |显示全部楼层
感谢分享经验 ^_^

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
发表于 2015-04-24 22:00 |显示全部楼层
s博。关于第三个示例,有个小bug
  1. cat file
复制代码
如果file是这样的
  1. DFDG
  2. START
  3. DSFDS
  4. DSDS
  5. XXX
  6. END
  7. AADD
  8. START
  9. SDSD  (VIO)
  10. FGFG
  11. END
  12. 有没有?
  13. START
  14. DSFDS
  15. DSDS
  16. XXX
  17. END
  18. START
  19. adad (VIO)
  20. gfthgh
  21. END
复制代码
代码执行结果

  1. awk '/START/{p++}{a[p]=a[p]"\n"$0}END{for(i=1;i<=p;i++)if(a[i]~/VIO/)print a[i]}'  file

  2. START
  3. SDSD  (VIO)
  4. FGFG
  5. END
  6. 有没有?

  7. START
  8. adad (VIO)
  9. gfthgh
  10. END
复制代码
献丑自己改了下:
  1. awk '/START/{p++}{a[p]=a[p]"\n"$0}/END/{p++}END{for(i=1;i<=p;i++)if(a[i]~/VIO/)print a[i]}'  file

  2. START
  3. SDSD  (VIO)
  4. FGFG
  5. END

  6. START
  7. adad (VIO)
  8. gfthgh
  9. END
复制代码

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-05-12 13:04:44
发表于 2015-04-24 22:04 |显示全部楼层
回复 24# drakness

赞dark兄
   

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2016-10-26 14:32:57
发表于 2016-08-03 16:39 |显示全部楼层
fantastic!

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-11-10 06:20:00IT运维版块每日发帖之星
日期:2016-07-19 06:20:00JAVA
日期:2016-10-25 16:03:37PHP
日期:2016-10-25 16:03:37Python
日期:2016-10-25 16:03:37
发表于 2016-08-03 17:27 |显示全部楼层
本帖最后由 mgunix 于 2016-08-03 17:30 编辑

因为1为真,0为假,只打印为真的
回复 21# fxwin


   

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2016-11-14 11:40 |显示全部楼层


鸣谢 @ id:xiongyefeng 对1.3的代码错误的指正。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP