在bash中将兆比特转换为千比特
我有一个文件out.result,其中包含在bash中将兆比特转换为千比特,bash,awk,sed,Bash,Awk,Sed,我有一个文件out.result,其中包含 73.0Mb 69.7Mb 59.8Mb 71.3Mb 59.7Mb 244Kb 我需要将Mb值转换为Kb,即 cat out.result | awk '{ total = $1 * 1000 ; print total }' 但对于已经以Kb为单位的值,也可以这样做 73000 69700 59800 71300 59700 244000 如何解决这个问题?对于您展示的示例,请尝试以下内容 awk ' { val=substr($0,le
73.0Mb
69.7Mb
59.8Mb
71.3Mb
59.7Mb
244Kb
我需要将Mb值转换为Kb,即
cat out.result | awk '{ total = $1 * 1000 ; print total }'
但对于已经以Kb为单位的值,也可以这样做
73000
69700
59800
71300
59700
244000
如何解决这个问题?对于您展示的示例,请尝试以下内容
awk '
{
val=substr($0,length($0)-1)
if(tolower(val)=="mb"){
$0 *= 1024
}
}
{
print $0+0
}' Input_file
删除
b
并使用numfmt
sed 's/b//' inputfile | numfmt --from=si --to-unit=K
转换不应该是1024吗?@karakfa不,位不以1024的倍数计算。字节有时以1024的倍数计算,打印为1kib,或。
sed 's/b//' inputfile | numfmt --from=si --to-unit=K