=2{total=$2+$3+$4} {printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}' name     1st     2nd     3th  ....">

当前位置:  技术问答>linux和unix

在线等,神奇的{}!!!

    来源: 互联网  发布时间:2017-01-26

    本文导语:  [ROOT@LOCALHOST yoyo]# cat lala | awk 'NR==1{printf "%5s %5s %5s %5s %5sn",$1,$2,$3,$4,"Total"} NR>=2{total=$2+$3+$4} {printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}' name     1st     2nd     3th      total name    1       2   ...

[ROOT@LOCALHOST yoyo]# cat lala | awk 'NR==1{printf "%5s %5s %5s %5s %5sn",$1,$2,$3,$4,"Total"} NR>=2{total=$2+$3+$4} {printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}'

name     1st     2nd     3th      total
name    1       2       3      0.00000
Vbird 2000 3000 4000 9000.00000
Yoyo 2000 3000 5000  10000.00000
lala  3000 2000 4000 9000.00000
           0    0    0    0.00000
   0    0    0    0.00000
   0    0    0    0.00000


此处,因为觉得total=$2+$3+$4是在第二行开始存在的,所以就放在NR>=2后面,然后分别对total=$2+$3+$4和后面的printf语句都加上{},得到上面的结果,但是多出一行我不想要的,就是:name    1       2       3      0.00000,不知道哪里来的。而且,明明是设置total是第二、三、四个参数相加的总和,如果有name    1       2       3 ,为什么后面的total是0.00000的。。。。不解。。。此处究竟错在哪里。。。呢

----------------------------------------------------------------------

[ROOT@LOCALHOST yoyo]# cat lala | awk 'NR==1{printf "%5s %5s %5s %5s %5sn",$1,$2,$3,$4,"Total"} NR>=2{total=$2+$3+$4 printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}'

awk:NR==1{printf "%5s %5s %5s %5s %5sn",$1,$2,$3,$4,"Total"} NR>=2{total=$2+$3+$4 printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}
awk:^syntax error

这个的出发点是因为觉得total=$2+$3+$4是在第二行开始存在的,所以直接把total=$2+$3+$4和printf语句包括在跟在NR>=2后面的{}里边,但是却提示出现语法错误,何解?又是{}搞怪么?

-----------------------------------------------------------------------

[ROOT@LOCALHOST yoyo]# cat lala | awk 'NR==1{printf "%5s %5s %5s %5s %5sn",$1,$2,$3,$4,"Total"} {total=$2+$3+$4 } NR>=2{printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}'

name     1st     2nd     3th      total
Vbird 2000 3000 4000 9000.00000
Yoyo 2000 3000 5000  10000.00000
lala  3000 2000 4000 9000.00000
           0    0    0    0.00000
   0    0    0    0.00000
   0    0    0    0.00000

这个呢,我是把total=$2+$3+$4 声明在NR>=2前面,理由是在第二行开始之前声明total的值,然后接下来第二行以后的total都是这个值,可以这样理解么,偶是菜鸟。。。。。基础非常不扎实。但是这样却得到了我想要的结果了。。。

------------------------------------------------------------------------

[ROOT@LOCALHOST yoyo]# cat lala | awk 'NR==1{printf "%5s %5s %5s %5s %5sn",$1,$2,$3,$4,"Total"} total=$2+$3+$4  NR>=2{printf "%5s %5d %5d %5d %5.2fn",$1,$2,$3,$4,total}'
name     1st     2nd     3th      total
Vbird 2000 3000 4000 9000.00000
Yoyo 2000 3000 5000  10000.00000这一行神奇的消失了。。。。
lala  3000 2000 4000 9000.00000
           0    0    0    0.00000
   0    0    0    0.00000
   0    0    0    0.00000

我把total=$2+$3+$4的大括号给去掉了,得出的结果却是yoyo这一行不见了。。。。为啥米呢?


|
。。。一个{}内的语句之间加上;好不好

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Html5的mockups在线工具简介
  • 装MYSQL后启动错误! mysqld ended --在线急等!在线急等!在线急等!在线急等!-----
  • MyEclipse SVN插件SubEclipse 在线离线等几种安装方式介绍
  • 智能在线表单设计器 FreeForm智能在线表单设计器
  • Linux使用群24032501,保持20人在线,目标50人在线
  • 简单的输入输出问题 在线等待 在线给分
  • 怎么用能让asp实现统计在线人数的功能。在线等待!!!帮忙送分!
  • 在线求教, 为什么不能开始除root之外的用户登录??...很急, 在线等
  • 在线等,在线给分!(简单问题,急)
  • 我需要唯一用户在线,不能两个用户同时在线的JSP实现的设计文档
  • 在线等,在线给分!!!!!!!!!!
  • 在线求助!关于如何使用“信号”的方式来响应键盘按下的消息!在线急盼回复!
  • 如何判断在线用户,主要是如何判断用户关闭所有窗口(即他已经不在线了)?
  • 在线等几个简单问题解答,答出一个在线加50分。
  • 在线解压压缩 PclZip
  • 在线支持系统 CSLH
  • 在线视频编辑工具 Kaltura
  • NOSQL iis7站长之家
  • 手机在线收音机 MFRadio
  • 在线客服系统 PHP Live!
  • 在线考试系统 TCExam


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,