首页 > 解决方案 > 在除最后一个元素之外的每个元素上应用 awk 中的逗号

问题描述

我想获取所有 kubernetes 节点的列表,用逗号分隔,以便在NO_PROXYenv 变量中使用它并编写以下命令:

kgnoowide | grep -v NAME | awk '{printf  "%s,", $1}'

这本身有效,但缺少一些细节:当拥有三个节点时

node1
node2
node3

我的 awk 命令返回node1,node2,node3,

所以最后一个逗号是错误的,一个完美的输出应该是node1,node2,node3. 我知道这是一个小问题,只需在粘贴时删除逗号即可轻松解决。但我对如何解决这个问题很感兴趣awk,它本身就是一个非常强大的工具,所以我认为它应该是可能的。它也与脚本中的后续使用相关,例如生成具有正确变量的~/.bashrc条目。NO_PROXY

标签: awkkubernetes

解决方案


你不需要 grep 那里

kgnoowide | awk '!/NAME/{out=(out sep $0);sep=","} END{print out}'

推荐阅读