将 GB 转换为 TB 的脚本

将 GB 转换为 TB 的脚本

我有(多个)文件,如以下列表所示。其中几个文件的值以 TB 为单位,还有几个文件以 GB 为单位。现在,如果您清楚地看到文件输出,则有两行,分别显示总容量和已用容量。我可以使用 awk 分别将这两行相加,但我发现很少有以 GB 为单位的。是否可以编写脚本来检查值是以 GB 还是 TB 为单位,如果以 GB 为单位,则转换为 TB(1024)。

[root@localhost maneesh]# cat server1.txt
Total capacity                   2.0 TB
Capacity used                    735.23 GB
[root@localhost maneesh]#

基本上,最后我希望我的所有价值观都能在 TB 中呈现。

任何帮助都将不胜感激。

答案1

您可以检查是否$4是,如果是,则除以 1024。如果 infile 包含GB$3

Total capacity                   2.0 TB
Capacity used                    735.23 GB

你可以做这样的事情(parse.awk):

/Total capacity/ { if($4 == "GB") $3 /= 1024; tot  += $3 }
/Capacity used/  { if($4 == "GB") $3 /= 1024; used += $3 }

END { print "Total: " tot " TB, Used: " used " TB" }'

如果你像这样运行它:

awk -f parse.awk infile infile

你得到:

Total: 4 TB, Used: 1.436 TB

相关内容