You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Awk提取Kafka主题名及对应分区编号?

解决方案

方法一:使用awk实现

利用awk的字段处理特性,先提取最后一个字段作为分区号,再通过NF--保留前面的主题名称,最后按指定格式输出:

awk 'BEGIN{FS=OFS="-"} {part=$NF; NF--; printf "\"Topic: **%s**\" and his partition number: **%d**\n", $0, part}' /tmp/kafka.txt

执行后输出结果:

"Topic: **topic-with-num-in-name-1**" and his partition number: **4**
"Topic: **topic-without-num-in-name**" and his partition number: **3**

方法二:使用sed实现

通过正则表达式匹配最后一个-分隔的数字作为分区号,前面的内容作为主题名,直接替换为目标格式:

sed -E 's/(.*)-([0-9]+)$/"Topic: **\1**" and his partition number: **\2**"/' /tmp/kafka.txt

该命令同样会输出符合要求的结果。

内容的提问来源于stack exchange,提问作者mocart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:02:33