Chinaunix
标题:
不能打印数组
[打印本页]
作者:
sunzhiguolu
时间:
2016-03-28 14:05
标题:
不能打印数组
本帖最后由 sunzhiguolu 于 2016-03-28 14:06 编辑
awk "BEGIN{for (i=0;i<5;i++){a[i]=i}}"
复制代码
请问如何打印数组的内容.
awk "BEGIN{for (i=0;i<5;i++){a[i]=i}}END{for (n in a){print n,a[n]}}"
复制代码
没有结果, 不知道原因.
作者:
Shell_HAT
时间:
2016-03-28 14:17
echo "" | awk 'BEGIN{for (i=0;i<5;i++){a[i]=i}}END{for (n in a){print n,a[n]}}'
复制代码
作者:
sunzhiguolu
时间:
2016-03-28 14:19
回复
2#
Shell_HAT
果然奏效, 大神能给出原因吗. 谢谢...
作者:
sunzhiguolu
时间:
2016-03-28 14:29
谁能说下 awk 为什么不能打印结果, 而添加了 echo 命令后就可以了.
作者:
关阴月飞
时间:
2016-03-28 14:34
回复
4#
sunzhiguolu
awk 在等待你的输入
作者:
Shell_HAT
时间:
2016-03-28 14:36
回复
4#
sunzhiguolu
BEGIN语句在处理文本之前执行
END语句在处理文本之后执行
Finally,
after all the input is exhausted
, gawk executes the code in the END block(s) (if any).
作者:
sunzhiguolu
时间:
2016-03-28 14:39
回复
5#
关阴月飞
多谢大神, 输入 Enter + <C-z> 就有结果了, 非常感谢.
作者:
sunzhiguolu
时间:
2016-03-28 14:47
回复
6#
Shell_HAT
多谢大神
注解
, 谢谢...
作者:
sunzhiguolu
时间:
2016-03-28 15:06
比较了一下各种输出结果:
1.> awk 'BEGIN{for (i=0;i<5;i++){a[i]=i}}END{for (n in a){print n,a[n]}}' 等待所有输入结束后, 才执行 END 块
2.> awk 'BEGIN{for (i=0;i<5;i++){a[i]=i}}{for (n in a){print n,a[n]}}' 执行一次输入 + <Enter> 都会执行一次 {a[i]=i}}{for (n in a){print n,a[n]}} 块
有错误, 漏掉的地方请大家指正,,,
作者:
我是一隻羊
时间:
2016-03-28 15:20
awk "BEGIN{for (i=0;i<5;i++){a[i]=i};for (n in a){print n,a[n]}}"
复制代码
为什么要用END~都放BEGIN里不就行啦~
作者:
sunzhiguolu
时间:
2016-03-28 15:43
回复
10#
我是一隻羊
BEGIN{xxx} 块, 原来是读取任何输入之前执行的, 非常感谢...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2