注文する
./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に感謝します。コマンドには2つの問題があります。
- 間違った列に言及していました(例:$ 6ではなく$ 5)。
- このコマンドは、最初にgrepの使用が重複して単一のawk呼び出しに置き換えられる可能性があるため、次善策です。
このコマンドの最終バージョンは次のとおりです。
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe -group tuevGroup | awk '$2 == "mis.merchantCtpCredential" {sum += $6} END {print sum+0}'