Linux之awk实现进一法计算

摘要

今天突发奇想能不能用awk实现进一计算(不是四舍五入),终于在群用的帮助下(直接给答案)完成了这次乱想。特此记录之

一、awk实现进一法运算

[[email protected] ~]# du -sh /home/ | awk '{print $1}'
835G
[[email protected] ~]# du -s /home/ | awk '{print $1/1024/1024"G"}'
834.39G
[[email protected] ~]# du -s /home/ | awk '{a=$1/1024/1024}{printf("%dG\n",a~/./?int(a)+1:a)}'
835G
[[email protected] ~]# du -s /home/ | awk '{a=$1/1024/1024}{printf("%dG\n",int(a)==a?a:(int(a)+1))}'
835G
[[email protected] ~]# du -s /home/ | awk '{a=$1/1024/1024}{if(a>int(a))print int(a)+1"G";else print int(a)"G"}'
835G
[[email protected] ~]#

Linux之awk实现进一法计算

[[email protected] ~]# du -s /home/ | awk '{a=$1/1024/1024}{printf("%dG\n",a~/./?int(a)+1:a)}'
835G
[[email protected] ~]# #大叔给的方法,这里用到了三目运算,如果$1/1024/1024后有小数点,那就取整+1,否则就是整数
[[email protected] ~]# du -s /home/ | awk '{a=$1/1024/1024}{printf("%dG\n",int(a)==a?a:(int(a)+1))}'
835G
[[email protected] ~]# #大叔给的方法,还是三目运算,如果$1/1024/1024运算后结果等于$1/1024/1024运算后去整的结果,就直接输出,否则+1输出
[[email protected] ~]# du -s /home/ | awk '{a=$1/1024/1024}{if(a>int(a))print int(a)+1"G";else print int(a)"G"}'
835G
[[email protected] ~]# #马哥群里一师兄给的答案,其实都是一样的,都是判断下,然后根据判断结果来输出内容
[[email protected] ~]# 

Linux之awk实现进一法计算

二、shell的三目运算

三目运算写法:condition?true_value:false_value
小学语文不好,直接来点例子说明

此处为隐藏的内容!
发表评论并刷新,方可查看

  • 本文由 发表于 2015年7月20日14:50:07
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • Lookback 4

      测试下回复可见~~~~HOHO~~~