【发布时间】:2018-12-25 22:41:34
【问题描述】:
我有一个以下格式的 CSV 文件,我在工作中被告知这是一个“地图缩减问题” { 服务器1,33.23 服务器2,43.46 服务器3,64.34 服务器4,56.89 服务器2,33.24 服务器1,21.40 服务器2,33.46 }
它有几千行长,大约有 80 个服务器名称,每个名称在第 1 列中出现多次,第 2 列是 Mbs。对于第 1 列中每次出现的服务器名称,在第 2 列中添加相应的值。所以我留下了一个新表,第 1 列中没有重复项,只有第 2 列中的 Mbs 总和。
所以如果我不清楚 - 对于第 1 列中任何唯一值的每次出现,在第 2 列中添加相应的值。最后我会得到。
Server1,TotalMbs 服务器2,总Mbs 服务器3,总Mbs
我知道这可以用 awk 完成,但我不知道如何,我认为传入第 1 列中的值,然后在第 2 列中增加一个计数并继续逐行执行。相当棘手???我的冗长而不优雅的解决方案是在循环中为每个服务器创建一个临时文件,然后为每个文件创建第 2 列,然后在最后 rm 文件,但我知道它可以用 awk 在一个内衬中完成。
【问题讨论】:
-
请在您的帖子中的代码标签中发布示例输入和示例输出,然后让我们知道。