为什么print $0 比print $1多一个空行?

210阅读 0评论2015-10-19 sync_1521
分类:LINUX


  1. clouder@server2-47:/tmp/1019> echo '1a2a3a4a5' | awk 'BEGIN{RS="a"}{print $0}'
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5

  7. clouder@server2-47:/tmp/1019> echo '1a2a3a4a5' | awk 'BEGIN{RS="a"}{print $1}'
  8. 1
  9. 2
  10. 3
  11. 4
  12. 5
  13. clouder@server2-47:/tmp/1019>



为什么print $0 比print $1多一个空行?


指定RS=“a”后 1a2a3a4a5\n被拆分成5条record
record 1  $0为 1
record 2  $0为 2
record 3  $0为 3
record 4  $0为 4
record 5  $0为 5\n

awk执行到record 5时,ORS="\n",于是print $0  就变成了5\n\n ,所以多了一个空行
awk执行到record 5时,ORS="\n",于是print $1  就变成了5\n

上一篇:awk之RT内置变量
下一篇:awk之tim精华帖