UNFORMAT磁盘大小的字符串 [英] Unformat disk size strings

查看:92
本文介绍了UNFORMAT磁盘大小的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一些办法,比如 1K 字符串转换为 1000 1M 百万等?我想,以避免被一百万和第三十一届家伙创造了10线或> 100个字符的单行黑客这一点。类似 iso2int 5MB

编辑:单位-t5MB''字节工作,但该工具不可用。是否有任何简单的方法来转换的或者 5M 5MB 和类似字节<? / p>

最大的解决方案是优雅,但它会在我的情况下工作,在最短的等值是最起码的sed -e'S / B //我; S / K / * 1000的I /; S / M / * 1000000 / I; S / G / * 1000000000 / I; S / T / * 1000000000000 / I'| BC


解决方案

这样呢?

  $回声1K + 10M| SED -eS / K / * 1024 /克; S / M / * 1024 * 1024 /|公元前
10486784

编辑:

 的sed -e'S / T /公斤/ I; S /克/公里/ I; S / M / KK / I; S / K / * 1000 / IG; S / b //我'|公元前

Is there some way to convert strings like 1K to 1000, 1M to 1000000 etc. with a single Bash command? I'd like to avoid being the one million and thirty-first guy to create a >10-line or >100-character one-liner hack for this. Something like iso2int 5MB.

Edit: units -t '5MB' 'bytes works, but that tool is not available. Are there any simple ways to convert either 5M or 5MB and similar to bytes?

max's solution was elegant, but the shortest equivalent which would work in my case is at the very least sed -e 's/b//i;s/k/*1000/i;s/m/*1000000/i;s/g/*1000000000/i;s/t/*1000000000000/i' | bc.

解决方案

Something like this?

$ echo "1K + 10M" | sed -e "s/K/*1024/g;s/M/*1024*1024/" | bc
10486784

Edit:

sed -e 's/t/kg/i;s/g/km/i;s/m/kk/i;s/k/*1000/ig;s/b//i' | bc

这篇关于UNFORMAT磁盘大小的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆