我有一个 .txt 文件:
a 10
b 13
a 2
b 5
c 1
其中第一列用于标识符,第二列用于值。如果我想使用 awk 浏览文件并对第一列中每个项目的第二列中的数字求和,然后在打印前用 * 替换它,这样输出如下,我该怎么做?
a : **
b : **
c : *
使星数等于数字中的位数 (12 -> **, 18 -> **, 1 -> *)awk '{gsub("12", "**"); print}' test.txt
我试过了,但这当然不是正确的解决方案。打开任何建议。
最佳答案
你可以使用这个 awk:
awk '{sums[$1] += $2} END {for (i in sums) {
gsub(/./, "*", sums[i]); print i, ":", sums[i]}}' file
a : **
b : **
c : *
关于shell - 有没有办法使用 awk 总结单个标识符的第二个字段并用非数字替换输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66709762/