将 shell 命令的输出复制到变量并需要将输出数据作为逗号分隔

Copy output of a shell command to a variable and need to make output data's comma separated

我正在尝试获取 docker 容器的 IP,并且需要以逗号分隔的形式传递 IP。

使用下面的命令我可以得到容器的 ip

sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave")

输出-->

> 10.17.0.4
> 10.17.0.3
> 10.17.0.2

Need help to save the output IP's to a variable and process IP's to be comma separated like 10.17.0.4,10.17.0.3,10.17.0.2

您使用的是旧版本 Docker(信息)。所以下面的命令在 Docker

的新版本中不起作用
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave") | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'

在Docker的新版本中,您可以尝试以下命令。

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q  --filter ancestor=adminer) | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'

您可以在新版本中使用以下命令根据图像进行过滤,这将 return 所有容器 ID,否则旧命令将 return 在新版本中只有一个容器。

docker ps -q  --filter ancestor=image_name