gpt4 book ai didi

bash - 如何减去 2 个不同文件中的 2 个数字?

转载 作者:行者123 更新时间:2023-11-29 09:10:47 26 4
gpt4 key购买 nike

我有 2 个文件,它们是数据库大小的报告(1 个文件来自昨天,1 个来自今天)。我想看看每个数据库的大小是如何变化的,所以我想计算差异。

文件看起来像这样:

"DATABASE","Alloc MB","Use MB","Free MB","Temp MB","Hostname"

"EUROPE","9133508","8336089","797419","896120","server3"
"ASIA","3740156","3170088","570068","354000","server5"
"AFRICA","4871331","4101711","769620","318412","server4"

其他文件一样,只是编号不同。

我想看看数据库大小是如何变化的(所以只有列 “使用 MB”)。

我想我不能使用“diff”或“awk”选项,因为数字每天都可能发生巨大变化。我能想到的唯一好的“算法”是减去第 5 个和第 6 个双引号 (") 之间的数字,我该怎么做?

最佳答案

你可以这样做(使用 awk):

paste file1 file2 -d ',' |awk -F ',' '{gsub(/"/, "", $3); gsub(/"/, "", $9); print $3 - $9}'

paste 将两个文件并排放置,用逗号分隔 (-d ',')。所以你将拥有:

"DATABASE","Alloc MB","Use MB","Free MB","Temp MB","Hostname","DATABASE","Alloc MB","Use MB","Free MB","Temp MB","Hostname"

"EUROPE","9133508","8336089","797419","896120","server3","EUROPE","9133508","8336089","797419","896120","server3"
...

gsub(/"/, "", $3) 删除第 3 列周围的引号

最后我们打印第 3 列减去第 9 列

关于bash - 如何减去 2 个不同文件中的 2 个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58558932/

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