Chinaunix
标题:
shell基础9中awk脚本执行问题
[打印本页]
作者:
godsad
时间:
2014-02-16 16:58
标题:
shell基础9中awk脚本执行问题
为啥加了单列求和会自动输出$0?
测试样本
cat grade.txt
M.Tans 5/99 48311 Green 8 40 44
J.Lulu 06/99 48317 green 9 24 26
P.Bunny 02/99 48 Yellow 12 35 28
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansl 05/99 4712 Brown-2 12 30 28
复制代码
脚本2
#!/bin/awk -f
BEGIN {print "aaa\n"}
(aa+=$6)
END{print aa"bbb"}
执行结果:
./awktest2 grade.txt
aaa
M.Tans 5/99 48311 Green 8 40 44 [color=Red]#脚本里并没有加print $0,但是却输出了.去除(aa+=$6)就不会输出,这是什么规则?[/color]
J.Lulu 06/99 48317 green 9 24 26
P.Bunny 02/99 48 Yellow 12 35 28
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansl 05/99 4712 Brown-2 12 30 28
155bbb
复制代码
作者:
rdcwayx
时间:
2014-02-16 17:43
大于符号和括号不能混用
(aa+=$6)
复制代码
要改成
{aa+=$6}
复制代码
作者:
yestreenstars
时间:
2014-02-16 23:53
(aa+=$6)-->{aa+=$6}
作者:
godsad
时间:
2014-02-17 10:06
本帖最后由 godsad 于 2014-02-17 10:17 编辑
感谢版主和yestreenstars的热心帮助
附带个完整版的
#!/bin/awk -f
BEGIN {print "aaa\n"}
{aa+=$6;print $0}
END{print aa"bbb"}
复制代码
小发现也留个备档.与上面的脚本等价.直观结论是
换行 == ;
#!/bin/awk -f
BEGIN {print "aaa\n"}
{aa+=$6
print $0}
END{print aa"bbb"}
复制代码
作者:
rogantianwz
时间:
2014-02-17 17:51
哟西,估计我也犯这个错误
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2