bash – 方便解析带有单位后缀的数字?
发布时间:2020-12-15 18:40:17 所属栏目:安全 来源:网络整理
导读:假设您拥有人类可读格式的数据,例如du -h的输出,并希望进一步对这些数字进行操作.假设您希望通过grep管理数据,以对该数据的子集进行求和.您可以在以前从未见过的许多系统上临时执行此操作,并且只使用最少的实用程序.您需要所有标准10 ^ n后缀的后缀转换. 是
假设您拥有人类可读格式的数据,例如du -h的输出,并希望进一步对这些数字进行操作.假设您希望通过grep管理数据,以对该数据的子集进行求和.您可以在以前从未见过的许多系统上临时执行此操作,并且只使用最少的实用程序.您需要所有标准10 ^ n后缀的后缀转换.
是否存在gnu-linux实用程序将后缀数字转换为管道中的实数?你有一个bash函数来做这个,或者一些可能容易记住的perl,而不是一段正则表达式替换或几个sed步骤? 38M /var/crazyface/courses/200909-90147 2.7M /var/crazyface/courses/200909-90157 1.1M /var/crazyface/courses/200909-90159 385M /var/crazyface/courses/200909-90161 1.3M /var/crazyface/courses/200909-90169 376M /var/crazyface/courses/200907-90171 8.0K /var/crazyface/courses/200907-90173 668K /var/crazyface/courses/200907-90175 564M /var/crazyface/courses/200907-90178 4.0K /var/crazyface/courses/200907-90179 | grep 200907 | <惊人的后缀转换> | awk'{s = $1} END {print s}’ 相关参考文献: > How can I sort du -h output by size
基于我在以下一个问题上的回答:
awk '{ ex = index("KMGTPEZY",substr($1,length($1))) val = substr($1,length($1) - 1) prod = val * 10^(ex * 3) sum += prod } END {print sum}' 使用的另一种方法: sed 's/G/ * 1000 M/;s/M/ * 1000 K/;s/K/ * 1000/; s/$/ +/; $a0' | bc (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读