【发布时间】:2024-01-14 01:48:01
【问题描述】:
我有以下多行输出:
Volume Name: GATE02-SYSTEM
Size: 151934468096
Volume Name: GATE02-S
Size: 2000112582656
是否可以转换如下字符串:
Volume Name: GATE02-SYSTEM
Size: 141.5 Gb
Volume Name: GATE02-S
Size: 1862.75 Gb
使用 sed/awk?我为唯一的数字输出寻找答案,例如:
echo "151934468096" | awk '{ byte =$1 /1024/1024**2 ; print byte " GB" }'
但不知道如何将其应用于我的案例。
编辑:我想澄清一下我的情况。我有以下单行:
esxcfg-info | grep -A 17 "\\==+Vm FileSystem" | grep -B 15 "[I]s Accessible.*true" | grep -B 4 -A 11 "Head Extent.*ATA.*$" | sed -r 's/[.]{2,}/: /g;s/^ {12}//g;s/\|----//g' | egrep -i "([V]olume Name|^[S]ize:)"
生成上面的输出。我想知道在最后一个命令之后要添加什么以获得所需的输出。
【问题讨论】:
-
为什么不将
1862.75 Gb显示为1.9 Tb?看起来很明显 -
我们有一堆
-
我可以建议一个统一的解决方案,用于任何可以存在于任何相应单元
10Kb、100Mb、123 Gb等的任何数字......(根据其价值)跨度>