命令
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe -group tuevGroup | grep mis.merchantCtpCredential
产生以下不带标题的输出:
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
tuevGroup mis.merchantCtpCredentials 1 231 231 0 consumer-tuevGroup-2-00e2ed7d-0fdc-4303-bc06-0e8f50b1dc00 00.24.242.16/00.24.242.00 consumer-tuevGroup-2
tuevGroup mis.merchantCtpCredentials 5 182 182 0 consumer-tuevGroup-2-00e2ed7d-0fdc-4303-bc06-0e8f50b1dc00 00.24.242.16/00.24.242.00 consumer-tuevGroup-2
我想获取所有行的 LAG 列的总数,因此我将结果通过管道传递给 awk,如下所示
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe -group tuevGroup |
grep mis.merchantCtpCredentials |
awk '{sum += $5} END {print sum}'
然而,这不起作用,尽管如果我提交,grep mis.merchantCtpCredential
我会得到所有行的总结果,但未过滤
我想知道我在这里做错了什么,非常感谢您的帮助
答案1
感谢 @unxnut、@JimL 和 @camh 的帮助,我的命令遇到了两个问题:
- 我指的是错误的列(即 5 美元而不是 6 美元)。
- 该命令不是最理想的,因为 grep 的使用首先是多余的,可以用单个 awk 调用代替。
该命令的最终版本将是
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe -group tuevGroup | awk '$2 == "mis.merchantCtpCredential" {sum += $6} END {print sum+0}'