+ -
当前位置:首页 → 问答吧 → AWK循环。。。。。。。。。。

AWK循环。。。。。。。。。。

时间:2011-06-25

来源:互联网

[root@perass tools]# awk '{ i=1;while ( i<=NF ){print NF,$i;i++}}' data1
2 zhangsan
2 80
2 lisi
2 81.5
2 wangwu
2 93
2 zhangsan
2 85
2 lisi
2 88
2 wangwu
2 97
2 zhangsan
2 90
2 lisi
2 92
2 wangwu
2 88
[root@perass tools]# cat data1
zhangsan     80
lisi         81.5
wangwu       93
zhangsan     85
lisi         88
wangwu       97
zhangsan     90
lisi         92
wangwu       88

这意思把每行的元素,打印成列,有点不理解 求高手指点

作者: 267020090   发布时间: 2011-06-25

我不是高手,
解释下:每扫描一行进行:i=1初始化; NF字段数;循环输出:字段数、第i个字段。

作者: Nalternative   发布时间: 2011-06-25

谢了

作者: 267020090   发布时间: 2011-06-25

  1. awk '{for(i=1;i<=NF;i++)print $i}' file
  2. zhangsan
  3. 80
  4. lisi
  5. 81.5
  6. wangwu
  7. 93
  8. zhangsan
  9. 85
  10. lisi
  11. 88
  12. wangwu
  13. 97
  14. zhangsan
  15. 90
  16. lisi
  17. 92
  18. wangwu
  19. 88
复制代码
一般比较喜欢常用这种语法。

作者: zooyo   发布时间: 2011-06-25