Linux之awk实现进一法计算

摘要

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

一、awk实现进一法运算

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

Linux之awk实现进一法计算

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

Linux之awk实现进一法计算

二、shell的三目运算

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

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

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

lookback

目前评论:1   其中:访客  1   博主  0

  1. avatar Lookback 4
评论加载中...

发表评论

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