免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1058 | 回复: 0
打印 上一主题 下一主题

[学习共享] awk RS="" 的含义。 [复制链接]

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-18 12:21 |只看该作者 |倒序浏览
本帖最后由 cao627 于 2016-03-18 12:22 编辑

awk RS="" 的含义是以空行为记录分隔符,所谓的空行指以换行符\n为唯一字符的行(要注意空格符也是字符)。
如果一条记录和另一条记录隔着一空行,那么没RS="" 相当于 RS="\n\n",但是又有区别。区别在如下代码的最后一行c@体现
  1. /tmp$ cat aaa
  2. a

  3. bbbb
  4. xxxx

  5. c
  6. /tmp$ cat aaa | awk   '{print NR}'
  7. 1
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6
  13. /tmp$ cat aaa | awk  -v RS=""  '{print NR}'
  14. 1
  15. 2
  16. 3
  17. /tmp$ cat aaa | awk  -v RS="\n\n"  '{print NR}'
  18. 1
  19. 2
  20. 3
  21. /tmp$ cat aaa | awk -v RS="" '{gsub("\n","@");print}'
  22. a
  23. bbbb@xxxx
  24. c
  25. /tmp$ cat aaa | awk -v RS="\n\n" '{gsub("\n","@");print}'
  26. a
  27. bbbb@xxxx
  28. c@
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP