gpt4 book ai didi

bash - 在 bash 中将 kB 和 GB 转换为 MB

转载 作者:行者123 更新时间:2023-12-03 22:22:37 24 4
gpt4 key购买 nike

我使用 awk 和 sed 来获取表中分区的列表及其大小,我想用它来计算单个表的每日增量。这是我的输出,现在我正在努力将所有大小转换为 MB。

匹配第二个字段中的数字并根据“MB”或“GB”字符串将其相乘的最佳bash方法是什么

2017061505,482.46MB,hdfs://user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061505,
2017061505,722.58MB,hdfs://user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061506,
2017061507,1.03GB,hdfs://user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061507,
2017061507,1.25GB,hdfs://user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061508,

所需的输出是:
2017061505,482.46MB,hdfs://MORPHEUS/user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061505,
2017061506,722.58MB,hdfs://MORPHEUS/user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061506,
2017061507,1030MB,hdfs://MORPHEUS/user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061507,
2017061508,1250MB,hdfs://MORPHEUS/user/hive/warehouse/cz_prd_ntw_op.db/diameter__24_/pr_comp_ver=0/pr_start_time=2017061508,

最佳答案

awk 中的简单解决方案:

awk '$2 ~ /[0-9\.]+GB/ { $2 = int($2 * 1024) "MB" } 1' FS="," OFS="," table.txt

随意添加另一个 kB 转换规则(只需除以 1024)。

关于bash - 在 bash 中将 kB 和 GB 转换为 MB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com